MCPcopy Create free account
hub / github.com/couchbaselabs/cbgb / copyColl

Function copyColl

compact.go:142–174  ·  view source on GitHub ↗
(srcColl *gkvlite.Collection, dstColl *gkvlite.Collection,
	writeEvery int)

Source from the content-addressed store, hash-verified

140}
141
142func copyColl(srcColl *gkvlite.Collection, dstColl *gkvlite.Collection,
143 writeEvery int) (numItems uint64, lastItem *gkvlite.Item, err error) {
144 minItem, err := srcColl.MinItem(true)
145 if err != nil {
146 return 0, nil, err
147 }
148 if minItem == nil {
149 return 0, nil, nil
150 }
151
152 var errVisit error = nil
153 err = srcColl.VisitItemsAscend(minItem.Key, true, func(i *gkvlite.Item) bool {
154 if errVisit = dstColl.SetItem(i); errVisit != nil {
155 return false
156 }
157 numItems++
158 lastItem = i
159 if writeEvery > 0 && numItems%uint64(writeEvery) == 0 {
160 if errVisit = dstColl.Write(); errVisit != nil {
161 return false
162 }
163 }
164 return true
165 })
166 if err != nil {
167 return 0, nil, err
168 }
169 if errVisit != nil {
170 return 0, nil, errVisit
171 }
172
173 return numItems, lastItem, nil
174}
175
176func copyDelta(lastChangeCAS []byte, cName string, kName string,
177 srcStore *gkvlite.Store, dstStore *gkvlite.Store,

Callers 2

copyVBucketCollsMethod · 0.85
copyRemainingCollsMethod · 0.85

Calls 1

WriteMethod · 0.45

Tested by

no test coverage detected