MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / SubmitPendingBucketChange

Method SubmitPendingBucketChange

bucket_manager.go:50–76  ·  view source on GitHub ↗
(reqs []*bucketSubmitRequest)

Source from the content-addressed store, hash-verified

48}
49
50func (bm *BucketManager) SubmitPendingBucketChange(reqs []*bucketSubmitRequest) error {
51 bytes := make([]byte, 0)
52 for _, req := range reqs {
53 bs := req.bucket.Encode()
54 bytes = append(bytes, bs...)
55 // update the marker info
56 if _, exist := bm.BucketIDMarker[req.name]; !exist {
57 bm.BucketIDMarker[req.name] = map[core.Ds]core.BucketId{}
58 }
59 // recover maxid otherwise new bucket start from 1 again
60 bm.Gen.CompareAndSetMaxId(req.bucket.Id)
61 switch req.bucket.Meta.Op {
62 case core.BucketInsertOperation:
63 bm.BucketInfoMapper[req.bucket.Id] = req.bucket
64 bm.BucketIDMarker[req.name][req.bucket.Ds] = req.bucket.Id
65 case core.BucketDeleteOperation:
66 if len(bm.BucketIDMarker[req.name]) == 1 {
67 delete(bm.BucketIDMarker, req.name)
68 } else {
69 delete(bm.BucketIDMarker[req.name], req.bucket.Ds)
70 }
71 delete(bm.BucketInfoMapper, req.bucket.Id)
72 }
73 }
74 _, err := bm.fd.Write(bytes)
75 return err
76}
77
78type IDGenerator struct {
79 currentMaxId uint64

Callers 2

SubmitBucketMethod · 0.80
rebuildBucketManagerMethod · 0.80

Calls 5

appendFunction · 0.85
deleteFunction · 0.85
CompareAndSetMaxIdMethod · 0.80
WriteMethod · 0.65
EncodeMethod · 0.45

Tested by

no test coverage detected