Skip to content

Commit c873f3e

Browse files
committed
feat: Use go routine to WriteBatch
--story=1
1 parent 51bfadd commit c873f3e

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

Diff for: shardingdb.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,21 @@ func (sdb *ShardingDb) Write(batch *leveldb.Batch, wo *opt.WriteOptions) error {
206206
}
207207

208208
// Write batches to different txHandles
209+
wg := sync.WaitGroup{}
210+
wg.Add(len(batches))
211+
errChan := make(chan error, len(batches))
209212
for idx, b := range batches {
210-
if err := sdb.dbHandles[idx].Write(b, wo); err != nil {
213+
go func(dbIndex uint16, b1 *leveldb.Batch) {
214+
defer wg.Done()
215+
if err := sdb.dbHandles[dbIndex].Write(b1, wo); err != nil {
216+
errChan <- err
217+
}
218+
}(idx, b)
219+
}
220+
wg.Wait()
221+
close(errChan)
222+
for err := range errChan {
223+
if err != nil {
211224
return err
212225
}
213226
}

0 commit comments

Comments
 (0)