MCPcopy Create free account
hub / github.com/couchbase/moss / startOrReuseFile

Method startOrReuseFile

store.go:254–271  ·  view source on GitHub ↗

-------------------------------------------------------- startOrReuseFile either creates a new file or reuses the file from the last/current footer.

()

Source from the content-addressed store, hash-verified

252// startOrReuseFile either creates a new file or reuses the file from
253// the last/current footer.
254func (s *Store) startOrReuseFile() (fref *FileRef, file File, err error) {
255 s.m.Lock()
256 defer s.m.Unlock()
257
258 if s.footer != nil {
259 slocs, _ := s.footer.segmentLocs()
260 defer s.footer.DecRef()
261
262 if len(slocs) > 0 {
263 fref := slocs[0].mref.fref
264 file := fref.AddRef()
265
266 return fref, file, nil
267 }
268 }
269
270 return s.startFileLOCKED()
271}
272
273func (s *Store) startFileLOCKED() (*FileRef, File, error) {
274 fname, file, err := s.createNextFileLOCKED()

Callers 2

compactMethod · 0.95
persistMethod · 0.95

Calls 4

startFileLOCKEDMethod · 0.95
segmentLocsMethod · 0.80
DecRefMethod · 0.45
AddRefMethod · 0.45

Tested by

no test coverage detected