MCPcopy
hub / github.com/dgraph-io/dgraph / writeSplitLists

Method writeSplitLists

dgraph/cmd/bulk/reduce.go:485–503  ·  view source on GitHub ↗
(db, tmpDb *badger.DB, writer *badger.StreamWriter)

Source from the content-addressed store, hash-verified

483}
484
485func (r *reducer) writeSplitLists(db, tmpDb *badger.DB, writer *badger.StreamWriter) {
486 // baseStreamId is the max ID seen while writing non-split lists.
487 baseStreamId := atomic.AddUint32(&r.streamId, 1)
488 stream := tmpDb.NewStreamAt(math.MaxUint64)
489 stream.LogPrefix = "copying split keys to main DB"
490 stream.Send = func(buf *z.Buffer) error {
491 kvs, err := badger.BufferToKVList(buf)
492 x.Check(err)
493
494 buf.Reset()
495 for _, kv := range kvs.Kv {
496 kv.StreamId += baseStreamId
497 badger.KVToBuffer(kv, buf)
498 }
499 x.Check(writer.Write(buf))
500 return nil
501 }
502 x.Check(stream.Orchestrate(context.Background()))
503}
504
505// copyVectorDataToShards copies vector data from the shared vectorTmpDb to the correct output DBs.
506// It uses the predToOutputShard map to determine which predicate goes to which shard.

Callers 1

runMethod · 0.95

Calls 3

CheckFunction · 0.92
WriteMethod · 0.65
ResetMethod · 0.45

Tested by

no test coverage detected