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

Method calcTargetTopLevel

segment_stack_merge.go:13–36  ·  view source on GitHub ↗

calcTargetTopLevel() heuristically computes a new top level that the segmentStack should be merged to.

()

Source from the content-addressed store, hash-verified

11// calcTargetTopLevel() heuristically computes a new top level that
12// the segmentStack should be merged to.
13func (ss *segmentStack) calcTargetTopLevel() int {
14 var minMergePercentage float64
15 if ss.options != nil {
16 minMergePercentage = ss.options.MinMergePercentage
17 }
18 if minMergePercentage <= 0 {
19 minMergePercentage = DefaultCollectionOptions.MinMergePercentage
20 }
21
22 newTopLevel := 0
23 maxTopLevel := len(ss.a) - 2
24
25 for newTopLevel < maxTopLevel {
26 numX0 := ss.a[newTopLevel].Len()
27 numX1 := ss.a[newTopLevel+1].Len()
28 if (float64(numX1) / float64(numX0)) > minMergePercentage {
29 break
30 }
31
32 newTopLevel++
33 }
34
35 return newTopLevel
36}
37
38// ------------------------------------------------------
39

Callers 1

mergeMethod · 0.95

Calls 1

LenMethod · 0.65

Tested by

no test coverage detected