mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 14:57:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1767 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1767 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
define
 | 
						|
L0
 | 
						|
  000009:a.SET.10-b.SET.10
 | 
						|
  000007:c.SET.6-d.SET.8
 | 
						|
  000003:e.SET.5-j.SET.7
 | 
						|
----
 | 
						|
file count: 3, sublevels: 1, intervals: 6
 | 
						|
flush split keys(3): [b, d, j]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.0, 1, interval range: [0, 4]
 | 
						|
	000009:[a#10,1-b#10,1]
 | 
						|
	000007:[c#6,1-d#8,1]
 | 
						|
	000003:[e#5,1-j#7,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.0:  a---b c---d e---------------j
 | 
						|
       aa bb cc dd ee ff gg hh ii jj
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
a-c
 | 
						|
aa-cc
 | 
						|
f-g
 | 
						|
e-j
 | 
						|
----
 | 
						|
a-b, c-d, e-j
 | 
						|
a-b, c-d
 | 
						|
a-b, c-d
 | 
						|
e-j
 | 
						|
e-j
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000009:a.SET.10-b.SET.10
 | 
						|
  000007:b.SET.6-j.SET.8
 | 
						|
  000003:e.SET.5-j.SET.7
 | 
						|
----
 | 
						|
file count: 3, sublevels: 3, intervals: 5
 | 
						|
flush split keys(2): [b, j]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000009:[a#10,1-b#10,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [1, 3]
 | 
						|
	000007:[b#6,1-j#8,1]
 | 
						|
0.0: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [3, 3]
 | 
						|
	000003:[e#5,1-j#7,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:  a---b
 | 
						|
L0.1:     b------------------------j
 | 
						|
L0.0:              e---------------j
 | 
						|
       aa bb cc dd ee ff gg hh ii jj
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
a-b
 | 
						|
a-aa
 | 
						|
b-bb
 | 
						|
b-j
 | 
						|
j-j
 | 
						|
----
 | 
						|
a-j
 | 
						|
a-j
 | 
						|
a-b
 | 
						|
b-j
 | 
						|
b-j
 | 
						|
e-j
 | 
						|
 | 
						|
define no_initialize
 | 
						|
L0.2
 | 
						|
  000009:a.SET.10-b.SET.10
 | 
						|
L0.1
 | 
						|
  000003:e.SET.5-j.SET.7
 | 
						|
L0.0
 | 
						|
  000007:b.SET.6-j.SET.8
 | 
						|
----
 | 
						|
file count: 3, sublevels: 3, intervals: 0
 | 
						|
flush split keys(0): []
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000009:[a#10,1-b#10,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000003:[e#5,1-j#7,1]
 | 
						|
0.0: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000007:[b#6,1-j#8,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:  a---b
 | 
						|
L0.1:              e---------------j
 | 
						|
L0.0:     b------------------------j
 | 
						|
       aa bb cc dd ee ff gg hh ii jj
 | 
						|
 | 
						|
l0-check-ordering
 | 
						|
----
 | 
						|
OK
 | 
						|
 | 
						|
define no_initialize
 | 
						|
L0.1
 | 
						|
  000009:a.SET.10-b.SET.10
 | 
						|
L0.0
 | 
						|
  000007:b.SET.6-j.SET.8
 | 
						|
  000003:e.SET.5-j.SET.7
 | 
						|
----
 | 
						|
file count: 3, sublevels: 2, intervals: 0
 | 
						|
flush split keys(0): []
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000009:[a#10,1-b#10,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000007:[b#6,1-j#8,1]
 | 
						|
	000003:[e#5,1-j#7,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.1:  a---b
 | 
						|
L0.0:     b------------------------j e---j
 | 
						|
       aa bb cc dd ee ff gg hh ii jj
 | 
						|
 | 
						|
l0-check-ordering
 | 
						|
----
 | 
						|
L0.0 files 000007 and 000003 have overlapping ranges: [b#6,SET-j#8,SET] vs [e#5,SET-j#7,SET]
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000001:a.SET.2-b.SET.3
 | 
						|
  000002:c.SET.3-d.SET.5
 | 
						|
  000003:e.SET.5-f.SET.7
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.10-i.SET.10
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 5, intervals: 10
 | 
						|
flush split keys(3): [d, f, g]
 | 
						|
0.4: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [5, 6]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [5, 8]
 | 
						|
	000009:[f#10,1-i#10,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [5, 7]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [4, 5]
 | 
						|
	000003:[e#5,1-f#7,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.3, 2, interval range: [0, 6]
 | 
						|
	000001:[a#2,1-b#3,1]
 | 
						|
	000002:[c#3,1-d#5,1]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.4:                 f---g
 | 
						|
L0.3:                 f---------i
 | 
						|
L0.2:                 f------h
 | 
						|
L0.1:              e---f
 | 
						|
L0.0:  a---b c---d    f---g
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
max-depth-after-ongoing-compactions
 | 
						|
----
 | 
						|
5
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 5
 | 
						|
000006,000003,000005,000009,000010,000001,000002
 | 
						|
seed interval: f-f
 | 
						|
L0.4:                 f+++g
 | 
						|
L0.3:                 f+++++++++i
 | 
						|
L0.2:                 f++++++h
 | 
						|
L0.1:              e+++f
 | 
						|
L0.0:  a+++b c+++d    f+++g
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# SSTables 000001 and 000002 are optional additions to the above compaction, as they
 | 
						|
# overlap with base files that overlap with L0 files in the seed interval.
 | 
						|
# Marking 0002 as compacting should be enough to exclude both from the
 | 
						|
# chosen compaction.
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
----
 | 
						|
a-b, c-d, e-i
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000001:a.SET.2-b.SET.3
 | 
						|
  000002:c.SET.3-d.SET.5 intra_l0_compacting
 | 
						|
  000003:e.SET.5-f.SET.7
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.10-i.SET.10
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 5, intervals: 10
 | 
						|
flush split keys(3): [d, f, g]
 | 
						|
0.4: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [5, 6]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [5, 8]
 | 
						|
	000009:[f#10,1-i#10,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [5, 7]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [4, 5]
 | 
						|
	000003:[e#5,1-f#7,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.3, 2, interval range: [0, 6]
 | 
						|
	000001:[a#2,1-b#3,1]
 | 
						|
	000002:[c#3,1-d#5,1]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
compacting file count: 1, base compacting intervals: none
 | 
						|
L0.4:                 f---g
 | 
						|
L0.3:                 f---------i
 | 
						|
L0.2:                 f------h
 | 
						|
L0.1:              e---f
 | 
						|
L0.0:  a---b c^^^d    f---g
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 5
 | 
						|
000006,000003,000005,000009,000010
 | 
						|
seed interval: f-f
 | 
						|
L0.4:                 f+++g
 | 
						|
L0.3:                 f+++++++++i
 | 
						|
L0.2:                 f++++++h
 | 
						|
L0.1:              e+++f
 | 
						|
L0.0:  a---b c^^^d    f+++g
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Mark the above compaction as started.
 | 
						|
 | 
						|
update-state-for-compaction files=(000006,000003,000005,000009,000010)
 | 
						|
----
 | 
						|
OK
 | 
						|
 | 
						|
describe
 | 
						|
----
 | 
						|
file count: 7, sublevels: 5, intervals: 10
 | 
						|
flush split keys(3): [d, f, g]
 | 
						|
0.4: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [5, 6]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [5, 8]
 | 
						|
	000009:[f#10,1-i#10,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [5, 7]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [4, 5]
 | 
						|
	000003:[e#5,1-f#7,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.3, 2, interval range: [0, 6]
 | 
						|
	000001:[a#2,1-b#3,1]
 | 
						|
	000002:[c#3,1-d#5,1]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
compacting file count: 6, base compacting intervals: [4, 9]
 | 
						|
L0.4:                 fvvvg
 | 
						|
L0.3:                 fvvvvvvvvvi
 | 
						|
L0.2:                 fvvvvvvh
 | 
						|
L0.1:              evvvf
 | 
						|
L0.0:  a---b c^^^d    fvvvg
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
# Extend one of the SSTables (000009) to the right, and place an SSTable "under"
 | 
						|
# the extension (000011). This adds it to the compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.10-p.SET.10
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#10,1-p#10,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f---g
 | 
						|
L0.2:                 f------------------------------p
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
----
 | 
						|
f-p
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000006,000005,000009,000011,000010
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f+++g
 | 
						|
L0.2:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Set SSTable 000011 which is under/older SSTable 000009 to IsBaseCompacting = true.
 | 
						|
# This should prevent SSTable 000009 from participating in a base compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.10-p.SET.10
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.9 base_compacting
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#10,1-p#10,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#9,1]
 | 
						|
compacting file count: 1, base compacting intervals: [3, 4]
 | 
						|
L0.3:                 f---g
 | 
						|
L0.2:                 f------------------------------p
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000010,000009,000005,000006
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f+++g
 | 
						|
L0.2:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Raise 000009 to a higher level, so that there's still a stack depth of 3 below
 | 
						|
# it. This should make f-g a candidate for base compaction again.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10 base_compacting
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 1, base compacting intervals: [3, 4]
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000006,000005,000010
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
max-depth-after-ongoing-compactions
 | 
						|
----
 | 
						|
4
 | 
						|
 | 
						|
# Assume the above base compaction is chosen. This should reduce max depth after
 | 
						|
# ongoing compactions.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9 base_compacting
 | 
						|
  000006:f.SET.4-g.SET.5 base_compacting
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11 base_compacting
 | 
						|
  000011:n.SET.8-p.SET.10 base_compacting
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 4, base compacting intervals: [0, 1], [3, 4]
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 fvvvg
 | 
						|
L0.1:                 fvvvvvvh
 | 
						|
L0.0:                 fvvvg                   nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
max-depth-after-ongoing-compactions
 | 
						|
----
 | 
						|
1
 | 
						|
 | 
						|
# Ensure that when 000011 is not base compacting, it's chosen for compactions
 | 
						|
# along with 000009.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000006,000005,000010,000009,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Don't pick a base compaction if the overlapping Lbase files are marked as
 | 
						|
# compacting.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0 compacting
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   n------p
 | 
						|
L6:    a---------------f g====================================s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
# Greatly increase the size of SSTable 000009, past 100 << 20. This should make
 | 
						|
# it no longer a candidate for base compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.12-p.SET.12 size=104859600
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(4): [g, h, n, p]
 | 
						|
0.3: file count: 1, bytes: 104859600, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000006,000005,000010,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# However, when the size increase is applied to a lower sublevel that is
 | 
						|
# necessary to include to meet the minimum stack depth reduction, we overlook
 | 
						|
# the size difference and choose the file for compaction anyway.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11 size=104859600
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 5, sublevels: 4, intervals: 5
 | 
						|
flush split keys(2): [g, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [0, 3]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 104859600, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 3]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g                   n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000006,000005,000010,000009,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g                   n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
read-amp
 | 
						|
----
 | 
						|
4
 | 
						|
 | 
						|
# In L0.0, SST 000007 is marked as base compacting. There are two SSTs to the left
 | 
						|
# of it in the sublevel, and one to its right. The ones to its left should be
 | 
						|
# chosen by extendCandidateToRectangle.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000007:k.SET.2-l.SET.4 base_compacting
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000012:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 4, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 8.0, 8, interval range: [0, 7]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 1, base compacting intervals: [5, 5]
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g h------j kvvvl    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006,000004
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g h++++++j kvvvl    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000006,000005,000004,000010
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g h++++++j kvvvl    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
 | 
						|
# Now shift the base_compacting marker one SST to the left. But since file 6
 | 
						|
# was already chosen as part of the seed compaction construction, we still
 | 
						|
# prefer to choose it over files 7 and 11.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4 base_compacting
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000007:k.SET.2-l.SET.4
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000012:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 4, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 8.0, 8, interval range: [0, 7]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 1, base compacting intervals: [2, 3]
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g hvvvvvvj k---l    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g hvvvvvvj k---l    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Without any base_compacting markers, all SSTs in the bottom sublevel should
 | 
						|
# be chosen for an intra-L0 compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000007:k.SET.2-l.SET.4
 | 
						|
  000009:f.SET.12-p.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10
 | 
						|
L6
 | 
						|
  000012:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 4, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 8.0, 8, interval range: [0, 7]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                 f------------------------------p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 f---g h------j k---l    n------p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000009,000010,000005,000006,000004,000007,000011
 | 
						|
seed interval: f-g
 | 
						|
L0.3:                 f++++++++++++++++++++++++++++++p
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h
 | 
						|
L0.0:                 f+++g h++++++j k+++l    n++++++p
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
define flush_split_max_bytes=32
 | 
						|
L0
 | 
						|
  000001:a.SET.2-e.SET.5 size=64
 | 
						|
  000002:c.SET.6-g.SET.8 size=16
 | 
						|
  000003:f.SET.9-j.SET.11 size=16
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 3, sublevels: 3, intervals: 6
 | 
						|
flush split keys(0): []
 | 
						|
0.2: file count: 1, bytes: 16, width (mean, max): 2.0, 2, interval range: [3, 4]
 | 
						|
	000003:[f#9,1-j#11,1]
 | 
						|
0.1: file count: 1, bytes: 16, width (mean, max): 3.0, 3, interval range: [1, 3]
 | 
						|
	000002:[c#6,1-g#8,1]
 | 
						|
0.0: file count: 1, bytes: 64, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000001:[a#2,1-e#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:                 f------------j
 | 
						|
L0.1:        c------------g
 | 
						|
L0.0:  a------------e
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
# Check that read amplification is the sublevel height of the tallest key
 | 
						|
# interval, not the overall count of sublevels.
 | 
						|
 | 
						|
read-amp
 | 
						|
----
 | 
						|
2
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
----
 | 
						|
a-j
 | 
						|
 | 
						|
# The comparison of a cumulative count of interpolated bytes and
 | 
						|
# flushSplitMaxBytes is a <, so even though the cumulative count equals 32 after
 | 
						|
# a-c, we do not emit a flush split key until the end of the next interval, c-e.
 | 
						|
 | 
						|
flush-split-keys
 | 
						|
----
 | 
						|
flush user split keys: none
 | 
						|
 | 
						|
# Reduce flush_split_max_bytes by 1, and there should also be a split key at c.
 | 
						|
 | 
						|
define flush_split_max_bytes=31
 | 
						|
L0
 | 
						|
  000001:a.SET.2-e.SET.5 size=64
 | 
						|
  000002:c.SET.6-g.SET.8 size=16
 | 
						|
  000003:f.SET.9-j.SET.11 size=16
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 3, sublevels: 3, intervals: 6
 | 
						|
flush split keys(1): [j]
 | 
						|
0.2: file count: 1, bytes: 16, width (mean, max): 2.0, 2, interval range: [3, 4]
 | 
						|
	000003:[f#9,1-j#11,1]
 | 
						|
0.1: file count: 1, bytes: 16, width (mean, max): 3.0, 3, interval range: [1, 3]
 | 
						|
	000002:[c#6,1-g#8,1]
 | 
						|
0.0: file count: 1, bytes: 64, width (mean, max): 2.0, 2, interval range: [0, 1]
 | 
						|
	000001:[a#2,1-e#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:                 f------------j
 | 
						|
L0.1:        c------------g
 | 
						|
L0.0:  a------------e
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
flush-split-keys
 | 
						|
----
 | 
						|
flush user split keys: j
 | 
						|
 | 
						|
max-depth-after-ongoing-compactions
 | 
						|
----
 | 
						|
2
 | 
						|
 | 
						|
define flush_split_max_bytes=64
 | 
						|
L0
 | 
						|
  000001:a.SET.2-d.SET.5 size=64
 | 
						|
  000002:e.SET.6-g.SET.8 size=64
 | 
						|
  000003:h.SET.9-j.SET.11 size=16
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 3, sublevels: 1, intervals: 6
 | 
						|
flush split keys(1): [g]
 | 
						|
0.0: file count: 3, bytes: 144, width (mean, max): 1.0, 1, interval range: [0, 4]
 | 
						|
	000001:[a#2,1-d#5,1]
 | 
						|
	000002:[e#6,1-g#8,1]
 | 
						|
	000003:[h#9,1-j#11,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.0:  a---------d e------g h------j
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
flush-split-keys
 | 
						|
----
 | 
						|
flush user split keys: g
 | 
						|
 | 
						|
# The calculation for flush split bytes multiplies the specified max bytes
 | 
						|
# parameter with the number of sublevels. In the case below, that should mean
 | 
						|
# a flush split key would not be emitted at d despite the estimated bytes tally
 | 
						|
# exceeding 64 bytes. Instead, it would be emitted when 64 * 2 = 128 bytes have
 | 
						|
# been exceeded.
 | 
						|
 | 
						|
define flush_split_max_bytes=64
 | 
						|
L0
 | 
						|
  000001:a.SET.2-d.SET.5 size=64
 | 
						|
  000004:d.SET.12-e.SET.12 size=64
 | 
						|
  000002:e.SET.6-g.SET.8 size=64
 | 
						|
  000003:h.SET.9-j.SET.11 size=16
 | 
						|
L6
 | 
						|
  000007:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 4, sublevels: 2, intervals: 8
 | 
						|
flush split keys(1): [e]
 | 
						|
0.1: file count: 1, bytes: 64, width (mean, max): 3.0, 3, interval range: [1, 3]
 | 
						|
	000004:[d#12,1-e#12,1]
 | 
						|
0.0: file count: 3, bytes: 144, width (mean, max): 1.7, 2, interval range: [0, 6]
 | 
						|
	000001:[a#2,1-d#5,1]
 | 
						|
	000002:[e#6,1-g#8,1]
 | 
						|
	000003:[h#9,1-j#11,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.1:           d---e
 | 
						|
L0.0:  a---------d e------g h------j
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
b-b
 | 
						|
dd-e
 | 
						|
dd-i
 | 
						|
dd-h
 | 
						|
dd-j
 | 
						|
dd-s
 | 
						|
----
 | 
						|
a-d
 | 
						|
d-g
 | 
						|
d-g, h-j
 | 
						|
d-g, h-j
 | 
						|
d-g, h-j
 | 
						|
d-g, h-j
 | 
						|
 | 
						|
flush-split-keys
 | 
						|
----
 | 
						|
flush user split keys: e
 | 
						|
 | 
						|
# Ensure that the compaction picker doesn't error out when all seed files are
 | 
						|
# compacting.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4    base_compacting
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5    base_compacting
 | 
						|
  000007:k.SET.2-l.SET.4    base_compacting
 | 
						|
  000009:f.SET.12-p.SET.12  intra_l0_compacting
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-p.SET.10   base_compacting
 | 
						|
L6
 | 
						|
  000012:a.SET.0-f.SET.0
 | 
						|
  000008:g.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 4, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, p]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 8.0, 8, interval range: [0, 7]
 | 
						|
	000009:[f#12,1-p#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-p#10,1]
 | 
						|
compacting file count: 5, base compacting intervals: [0, 0], [2, 3], [5, 5], [7, 8]
 | 
						|
L0.3:                 f^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^p
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h
 | 
						|
L0.0:                 fvvvg hvvvvvvj kvvvl    nvvvvvvp
 | 
						|
L6:    a---------------f g------------------------------------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=2
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=2
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
# Ensure that base files with largest key set to the rangedel sentinel key are
 | 
						|
# treated as not containing the largest user key. If L0 files containing that
 | 
						|
# user key get added to that compaction, it could trigger a
 | 
						|
# "files have overlapping ranges" error in Lbase as one of the outputs of the
 | 
						|
# compaction would overlap with an Lbase file not in the compaction.
 | 
						|
# Compare the output of the next two calls to PickBaseCompaction below; as the
 | 
						|
# base file's end key is changed to the range deletion sentinel, L0 files
 | 
						|
# overlapping with it are no longer chosen for compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000007:k.SET.2-l.SET.4
 | 
						|
  000009:n.SET.12-o.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-o.SET.10
 | 
						|
L6
 | 
						|
  000001:a.SET.0-o.SET.0
 | 
						|
  000008:p.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 3, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, o]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 2, bytes: 512, width (mean, max): 2.0, 3, interval range: [0, 7]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
	000009:[n#12,1-o#12,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-o#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h                n---o
 | 
						|
L0.0:                 f---g h------j k---l    n---o
 | 
						|
L6:    a------------------------------------------o p---------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000006,000005,000004,000010,000007,000011,000009
 | 
						|
seed interval: f-g
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h                n+++o
 | 
						|
L0.0:                 f+++g h++++++j k+++l    n+++o
 | 
						|
L6:    a------------------------------------------o p---------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:h.SET.2-j.SET.4
 | 
						|
  000005:f.SET.6-h.SET.9
 | 
						|
  000006:f.SET.4-g.SET.5
 | 
						|
  000007:k.SET.2-l.SET.4
 | 
						|
  000009:n.SET.12-o.SET.12
 | 
						|
  000010:f.SET.11-g.SET.11
 | 
						|
  000011:n.SET.8-o.SET.10
 | 
						|
L6
 | 
						|
  000001:a.SET.0-o.RANGEDEL.72057594037927935
 | 
						|
  000008:p.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 7, sublevels: 3, intervals: 9
 | 
						|
flush split keys(4): [g, h, l, o]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000010:[f#11,1-g#11,1]
 | 
						|
0.1: file count: 2, bytes: 512, width (mean, max): 2.0, 3, interval range: [0, 7]
 | 
						|
	000005:[f#6,1-h#9,1]
 | 
						|
	000009:[n#12,1-o#12,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 1.2, 2, interval range: [0, 7]
 | 
						|
	000006:[f#4,1-g#5,1]
 | 
						|
	000004:[h#2,1-j#4,1]
 | 
						|
	000007:[k#2,1-l#4,1]
 | 
						|
	000011:[n#8,1-o#10,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:                 f---g
 | 
						|
L0.1:                 f------h                n---o
 | 
						|
L0.0:                 f---g h------j k---l    n---o
 | 
						|
L6:    a------------------------------------------o p---------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
pick-base-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000006,000005,000004,000010,000007,000011,000009
 | 
						|
seed interval: f-g
 | 
						|
L0.2:                 f+++g
 | 
						|
L0.1:                 f++++++h                n+++o
 | 
						|
L0.0:                 f+++g h++++++j k+++l    n+++o
 | 
						|
L6:    a------------------------------------------o p---------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
n-o
 | 
						|
----
 | 
						|
f-j, k-l, n-o
 | 
						|
n-o
 | 
						|
 | 
						|
# Ensure that two L0 sstables where one ends at a rangedel sentinel key and
 | 
						|
# the other starts at the same user key occupy the same sublevel.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:a.SET.2-d.RANGEDEL.72057594037927935
 | 
						|
  000005:d.SET.3-g.SET.5
 | 
						|
L6
 | 
						|
  000001:a.SET.0-o.SET.0
 | 
						|
  000008:p.SET.0-s.SET.0
 | 
						|
----
 | 
						|
file count: 2, sublevels: 1, intervals: 3
 | 
						|
flush split keys(2): [d, g]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 1]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.0:  a--------d---------g
 | 
						|
L6:    a------------------------------------------o p---------s
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
a-g
 | 
						|
b-c
 | 
						|
----
 | 
						|
a-g
 | 
						|
a-g
 | 
						|
a-d
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:a.SET.2-d.RANGEDEL.72057594037927935
 | 
						|
  000005:d.SET.3-g.SET.5
 | 
						|
  000006:f.SET.6-i.SET.6
 | 
						|
  000007:h.SET.7-m.SET.7
 | 
						|
  000009:q.SET.7-r.SET.7
 | 
						|
  000010:g.SET.10-i.SET.10
 | 
						|
----
 | 
						|
file count: 6, sublevels: 4, intervals: 10
 | 
						|
flush split keys(4): [f, g, i, r]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [3, 5]
 | 
						|
	000010:[g#10,1-i#10,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [5, 6]
 | 
						|
	000007:[h#7,1-m#7,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [2, 5]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [0, 8]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
	000009:[q#7,1-r#7,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                    g------i
 | 
						|
L0.2:                       h---------------m
 | 
						|
L0.1:                 f---------i
 | 
						|
L0.0:  a--------d---------g                            q---r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
f-m
 | 
						|
f-n
 | 
						|
f-l
 | 
						|
ff-m
 | 
						|
ff-n
 | 
						|
ff-l
 | 
						|
----
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
n-o
 | 
						|
m-q
 | 
						|
l-qq
 | 
						|
----
 | 
						|
.
 | 
						|
i-m, q-r
 | 
						|
i-m, q-r
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
g-l
 | 
						|
----
 | 
						|
a-m, q-r
 | 
						|
g-m
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-ff
 | 
						|
a-gg
 | 
						|
a-i
 | 
						|
d-d
 | 
						|
----
 | 
						|
a-g
 | 
						|
a-i
 | 
						|
a-m
 | 
						|
d-g
 | 
						|
 | 
						|
# Same example as above, except we incrementally add the sublevels. The output
 | 
						|
# of in-use-key-ranges must be the same.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:a.SET.2-d.RANGEDEL.72057594037927935
 | 
						|
----
 | 
						|
file count: 1, sublevels: 1, intervals: 2
 | 
						|
flush split keys(1): [d]
 | 
						|
0.0: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.0:  a---------d
 | 
						|
       aa bb cc dd
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000005:d.SET.3-g.SET.5
 | 
						|
----
 | 
						|
file count: 2, sublevels: 1, intervals: 3
 | 
						|
flush split keys(2): [d, g]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.0, 1, interval range: [0, 1]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.0:  a--------d---------g
 | 
						|
       aa bb cc dd ee ff gg
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000006:f.SET.6-i.SET.6
 | 
						|
----
 | 
						|
file count: 3, sublevels: 2, intervals: 5
 | 
						|
flush split keys(2): [d, g]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [2, 3]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 2, bytes: 512, width (mean, max): 1.5, 2, interval range: [0, 2]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.1:                 f---------i
 | 
						|
L0.0:  a--------d---------g
 | 
						|
       aa bb cc dd ee ff gg hh ii
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000007:h.SET.7-m.SET.7
 | 
						|
  000009:q.SET.8-r.SET.8
 | 
						|
----
 | 
						|
file count: 5, sublevels: 3, intervals: 9
 | 
						|
flush split keys(4): [d, g, i, r]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [4, 5]
 | 
						|
	000007:[h#7,1-m#7,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [2, 4]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.3, 2, interval range: [0, 7]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
	000009:[q#8,1-r#8,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.2:                       h---------------m
 | 
						|
L0.1:                 f---------i
 | 
						|
L0.0:  a--------d---------g                            q---r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
# The output below should exactly match the output of the second last define.
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000010:g.SET.10-i.SET.10
 | 
						|
----
 | 
						|
file count: 6, sublevels: 4, intervals: 10
 | 
						|
flush split keys(4): [f, g, i, r]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [3, 5]
 | 
						|
	000010:[g#10,1-i#10,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [5, 6]
 | 
						|
	000007:[h#7,1-m#7,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 4.0, 4, interval range: [2, 5]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [0, 8]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
	000009:[q#8,1-r#8,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                    g------i
 | 
						|
L0.2:                       h---------------m
 | 
						|
L0.1:                 f---------i
 | 
						|
L0.0:  a--------d---------g                            q---r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
f-m
 | 
						|
f-n
 | 
						|
f-l
 | 
						|
ff-m
 | 
						|
ff-n
 | 
						|
ff-l
 | 
						|
----
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
f-m
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
n-o
 | 
						|
m-q
 | 
						|
l-qq
 | 
						|
----
 | 
						|
.
 | 
						|
i-m, q-r
 | 
						|
i-m, q-r
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-z
 | 
						|
g-l
 | 
						|
----
 | 
						|
a-m, q-r
 | 
						|
g-m
 | 
						|
 | 
						|
in-use-key-ranges
 | 
						|
a-ff
 | 
						|
a-gg
 | 
						|
a-i
 | 
						|
d-d
 | 
						|
----
 | 
						|
a-g
 | 
						|
a-i
 | 
						|
a-m
 | 
						|
d-g
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000005,000006,000010,000007,000004,000009
 | 
						|
seed interval: g-g
 | 
						|
L0.3:                    g++++++i
 | 
						|
L0.2:                       h+++++++++++++++m
 | 
						|
L0.1:                 f+++++++++i
 | 
						|
L0.0:  a++++++++d+++++++++g                            q+++r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
# Adding two overlapping L0 files is supported too, as long as they're disjoint
 | 
						|
# in sequence number ranges.
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000011:b.SET.13-e.SET.15
 | 
						|
  000012:c.SET.16-e.SET.17
 | 
						|
----
 | 
						|
file count: 8, sublevels: 4, intervals: 13
 | 
						|
flush split keys(5): [d, e, g, i, r]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [6, 8]
 | 
						|
	000010:[g#10,1-i#10,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [2, 9]
 | 
						|
	000012:[c#16,1-e#17,1]
 | 
						|
	000007:[h#7,1-m#7,1]
 | 
						|
0.1: file count: 2, bytes: 512, width (mean, max): 3.5, 4, interval range: [1, 8]
 | 
						|
	000011:[b#13,1-e#15,1]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 2.7, 4, interval range: [0, 11]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
	000009:[q#8,1-r#8,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                    g------i
 | 
						|
L0.2:        c------e       h---------------m
 | 
						|
L0.1:     b---------e f---------i
 | 
						|
L0.0:  a--------d---------g                            q---r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
# Multiple sublevels can also be added in one add-l0-files.
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000013:h.SET.18-i.SET.19
 | 
						|
  000014:g.SET.20-i.SET.21
 | 
						|
----
 | 
						|
file count: 10, sublevels: 6, intervals: 13
 | 
						|
flush split keys(4): [d, g, h, i]
 | 
						|
0.5: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [6, 8]
 | 
						|
	000014:[g#20,1-i#21,1]
 | 
						|
0.4: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [8, 8]
 | 
						|
	000013:[h#18,1-i#19,1]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [6, 8]
 | 
						|
	000010:[g#10,1-i#10,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [2, 9]
 | 
						|
	000012:[c#16,1-e#17,1]
 | 
						|
	000007:[h#7,1-m#7,1]
 | 
						|
0.1: file count: 2, bytes: 512, width (mean, max): 3.5, 4, interval range: [1, 8]
 | 
						|
	000011:[b#13,1-e#15,1]
 | 
						|
	000006:[f#6,1-i#6,1]
 | 
						|
0.0: file count: 3, bytes: 768, width (mean, max): 2.7, 4, interval range: [0, 11]
 | 
						|
	000004:[a#2,1-d#72057594037927935,15]
 | 
						|
	000005:[d#3,1-g#5,1]
 | 
						|
	000009:[q#8,1-r#8,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.5:                    g------i
 | 
						|
L0.4:                       h---i
 | 
						|
L0.3:                    g------i
 | 
						|
L0.2:        c------e       h---------------m
 | 
						|
L0.1:     b---------e f---------i
 | 
						|
L0.0:  a--------d---------g                            q---r
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr
 | 
						|
 | 
						|
# Adding an old L0 file returns an error.
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000015:h.SET.17-i.SET.17
 | 
						|
----
 | 
						|
pebble: L0 sublevel generation optimization cannot be used
 | 
						|
 | 
						|
# The following test cases cover the examples provided in the documentation.
 | 
						|
# NOTE: following initialization, some of the files fall down into lower levels
 | 
						|
# where there is space.
 | 
						|
 | 
						|
# Example 1. No in-progress L0 -> LBase compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0.3
 | 
						|
  000011:a.SET.18-d.SET.19
 | 
						|
  000012:g.SET.20-j.SET.21
 | 
						|
L0.2
 | 
						|
  000009:f.SET.14-j.SET.15
 | 
						|
  000010:r.SET.16-t.SET.17
 | 
						|
L0.1
 | 
						|
  000007:b.SET.10-d.SET.11
 | 
						|
  000008:e.SET.12-j.SET.13
 | 
						|
L0.0
 | 
						|
  000003:a.SET.2-d.SET.3
 | 
						|
  000004:f.SET.4-j.SET.5
 | 
						|
  000005:l.SET.6-o.SET.7
 | 
						|
  000006:p.SET.8-x.SET.9
 | 
						|
L6
 | 
						|
  000001:a.SET.0-i.SET.0
 | 
						|
  000002:m.SET.0-w.SET.0
 | 
						|
----
 | 
						|
file count: 10, sublevels: 4, intervals: 13
 | 
						|
flush split keys(5): [d, g, j, r, t]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [5, 5]
 | 
						|
	000012:[g#20,1-j#21,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [0, 5]
 | 
						|
	000011:[a#18,1-d#19,1]
 | 
						|
	000009:[f#14,1-j#15,1]
 | 
						|
0.1: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [1, 10]
 | 
						|
	000007:[b#10,1-d#11,1]
 | 
						|
	000008:[e#12,1-j#13,1]
 | 
						|
	000010:[r#16,1-t#17,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 2.0, 3, interval range: [0, 11]
 | 
						|
	000003:[a#2,1-d#3,1]
 | 
						|
	000004:[f#4,1-j#5,1]
 | 
						|
	000005:[l#6,1-o#7,1]
 | 
						|
	000006:[p#8,1-x#9,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:                    g---------j
 | 
						|
L0.2:  a---------d    f------------j
 | 
						|
L0.1:     b------d e---------------j                      r------t
 | 
						|
L0.0:  a---------d    f------------j    l---------o p------------------------x
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 4
 | 
						|
000004,000008,000009,000012,000003,000007,000011
 | 
						|
seed interval: g-j
 | 
						|
L0.3:                    g+++++++++j
 | 
						|
L0.2:  a+++++++++d    f++++++++++++j
 | 
						|
L0.1:     b++++++d e+++++++++++++++j                      r------t
 | 
						|
L0.0:  a+++++++++d    f++++++++++++j    l---------o p------------------------x
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
# Example 2. Left half of the keyspace compacting. Select the "next best"
 | 
						|
# compaction.
 | 
						|
 | 
						|
define
 | 
						|
L0.3
 | 
						|
  000011:a.SET.18-d.SET.19 base_compacting
 | 
						|
  000012:g.SET.20-j.SET.21 base_compacting
 | 
						|
L0.2
 | 
						|
  000009:f.SET.14-j.SET.15 base_compacting
 | 
						|
  000010:r.SET.16-t.SET.17
 | 
						|
L0.1
 | 
						|
  000007:b.SET.10-d.SET.11 base_compacting
 | 
						|
  000008:e.SET.12-j.SET.13 base_compacting
 | 
						|
L0.0
 | 
						|
  000003:a.SET.2-d.SET.3 base_compacting
 | 
						|
  000004:f.SET.4-j.SET.5 base_compacting
 | 
						|
  000005:l.SET.6-o.SET.7
 | 
						|
  000006:p.SET.8-x.SET.9
 | 
						|
L6
 | 
						|
  000001:a.SET.0-i.SET.0
 | 
						|
  000002:m.SET.0-w.SET.0
 | 
						|
----
 | 
						|
file count: 10, sublevels: 4, intervals: 13
 | 
						|
flush split keys(5): [d, g, j, r, t]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [5, 5]
 | 
						|
	000012:[g#20,1-j#21,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [0, 5]
 | 
						|
	000011:[a#18,1-d#19,1]
 | 
						|
	000009:[f#14,1-j#15,1]
 | 
						|
0.1: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [1, 10]
 | 
						|
	000007:[b#10,1-d#11,1]
 | 
						|
	000008:[e#12,1-j#13,1]
 | 
						|
	000010:[r#16,1-t#17,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 2.0, 3, interval range: [0, 11]
 | 
						|
	000003:[a#2,1-d#3,1]
 | 
						|
	000004:[f#4,1-j#5,1]
 | 
						|
	000005:[l#6,1-o#7,1]
 | 
						|
	000006:[p#8,1-x#9,1]
 | 
						|
compacting file count: 7, base compacting intervals: [0, 6]
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  avvvvvvvvvd    fvvvvvvvvvvvvj
 | 
						|
L0.1:     bvvvvvvd evvvvvvvvvvvvvvvj                      r------t
 | 
						|
L0.0:  avvvvvvvvvd    fvvvvvvvvvvvvj    l---------o p------------------------x
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
pick-base-compaction min_depth=3
 | 
						|
----
 | 
						|
no compaction picked
 | 
						|
 | 
						|
pick-base-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 2
 | 
						|
000006,000010,000005
 | 
						|
seed interval: r-t
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  avvvvvvvvvd    fvvvvvvvvvvvvj
 | 
						|
L0.1:     bvvvvvvd evvvvvvvvvvvvvvvj                      r++++++t
 | 
						|
L0.0:  avvvvvvvvvd    fvvvvvvvvvvvvj    l+++++++++o p++++++++++++++++++++++++x
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
# Example 3. The same as Example 2, except there is now an additional file in
 | 
						|
# LBase that overlaps with the [l,o] file in L0.0.
 | 
						|
 | 
						|
define
 | 
						|
L0.3
 | 
						|
  000011:a.SET.18-d.SET.19 base_compacting
 | 
						|
  000012:g.SET.20-j.SET.21 base_compacting
 | 
						|
L0.2
 | 
						|
  000009:f.SET.14-j.SET.15 base_compacting
 | 
						|
  000010:r.SET.16-t.SET.17
 | 
						|
L0.1
 | 
						|
  000007:b.SET.10-d.SET.11 base_compacting
 | 
						|
  000008:e.SET.12-j.SET.13 base_compacting
 | 
						|
L0.0
 | 
						|
  000003:a.SET.2-d.SET.3 base_compacting
 | 
						|
  000004:f.SET.4-j.SET.5 base_compacting
 | 
						|
  000005:l.SET.6-o.SET.7
 | 
						|
  000006:p.SET.8-x.SET.9
 | 
						|
L6
 | 
						|
  000001:a.SET.0-i.SET.0
 | 
						|
  000013:j.SET.0-l.SET.0
 | 
						|
  000002:m.SET.0-w.SET.0
 | 
						|
----
 | 
						|
file count: 10, sublevels: 4, intervals: 13
 | 
						|
flush split keys(5): [d, g, j, r, t]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [5, 5]
 | 
						|
	000012:[g#20,1-j#21,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [0, 5]
 | 
						|
	000011:[a#18,1-d#19,1]
 | 
						|
	000009:[f#14,1-j#15,1]
 | 
						|
0.1: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [1, 10]
 | 
						|
	000007:[b#10,1-d#11,1]
 | 
						|
	000008:[e#12,1-j#13,1]
 | 
						|
	000010:[r#16,1-t#17,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 2.0, 3, interval range: [0, 11]
 | 
						|
	000003:[a#2,1-d#3,1]
 | 
						|
	000004:[f#4,1-j#5,1]
 | 
						|
	000005:[l#6,1-o#7,1]
 | 
						|
	000006:[p#8,1-x#9,1]
 | 
						|
compacting file count: 7, base compacting intervals: [0, 6]
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  avvvvvvvvvd    fvvvvvvvvvvvvj
 | 
						|
L0.1:     bvvvvvvd evvvvvvvvvvvvvvvj                      r------t
 | 
						|
L0.0:  avvvvvvvvvd    fvvvvvvvvvvvvj    l---------o p------------------------x
 | 
						|
L6:    a------------------------i j------l m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
pick-base-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 2
 | 
						|
000006,000010
 | 
						|
seed interval: r-t
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  avvvvvvvvvd    fvvvvvvvvvvvvj
 | 
						|
L0.1:     bvvvvvvd evvvvvvvvvvvvvvvj                      r++++++t
 | 
						|
L0.0:  avvvvvvvvvd    fvvvvvvvvvvvvj    l---------o p++++++++++++++++++++++++x
 | 
						|
L6:    a------------------------i j------l m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
# Example 4. Intra-L0 compactions.
 | 
						|
 | 
						|
define
 | 
						|
L0.3
 | 
						|
  000011:a.SET.18-d.SET.19
 | 
						|
  000012:g.SET.20-j.SET.21 base_compacting
 | 
						|
L0.2
 | 
						|
  000009:f.SET.14-j.SET.15 base_compacting
 | 
						|
  000010:r.SET.16-t.SET.17 base_compacting
 | 
						|
L0.1
 | 
						|
  000007:b.SET.10-d.SET.11
 | 
						|
  000008:e.SET.12-j.SET.13 base_compacting
 | 
						|
L0.0
 | 
						|
  000003:a.SET.2-d.SET.3
 | 
						|
  000004:f.SET.4-j.SET.5 base_compacting
 | 
						|
  000005:l.SET.6-o.SET.7
 | 
						|
  000006:p.SET.8-x.SET.9 base_compacting
 | 
						|
L6
 | 
						|
  000001:a.SET.0-i.SET.0
 | 
						|
  000002:m.SET.0-w.SET.0
 | 
						|
----
 | 
						|
file count: 10, sublevels: 4, intervals: 13
 | 
						|
flush split keys(5): [d, g, j, r, t]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [5, 5]
 | 
						|
	000012:[g#20,1-j#21,1]
 | 
						|
0.2: file count: 2, bytes: 512, width (mean, max): 2.0, 2, interval range: [0, 5]
 | 
						|
	000011:[a#18,1-d#19,1]
 | 
						|
	000009:[f#14,1-j#15,1]
 | 
						|
0.1: file count: 3, bytes: 768, width (mean, max): 1.7, 3, interval range: [1, 10]
 | 
						|
	000007:[b#10,1-d#11,1]
 | 
						|
	000008:[e#12,1-j#13,1]
 | 
						|
	000010:[r#16,1-t#17,1]
 | 
						|
0.0: file count: 4, bytes: 1024, width (mean, max): 2.0, 3, interval range: [0, 11]
 | 
						|
	000003:[a#2,1-d#3,1]
 | 
						|
	000004:[f#4,1-j#5,1]
 | 
						|
	000005:[l#6,1-o#7,1]
 | 
						|
	000006:[p#8,1-x#9,1]
 | 
						|
compacting file count: 6, base compacting intervals: [3, 6], [9, 12]
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  a---------d    fvvvvvvvvvvvvj
 | 
						|
L0.1:     b------d evvvvvvvvvvvvvvvj                      rvvvvvvt
 | 
						|
L0.0:  a---------d    fvvvvvvvvvvvvj    l---------o pvvvvvvvvvvvvvvvvvvvvvvvvx
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000011,000007,000003
 | 
						|
seed interval: b-d
 | 
						|
L0.3:                    gvvvvvvvvvj
 | 
						|
L0.2:  a+++++++++d    fvvvvvvvvvvvvj
 | 
						|
L0.1:     b++++++d evvvvvvvvvvvvvvvj                      rvvvvvvt
 | 
						|
L0.0:  a+++++++++d    fvvvvvvvvvvvvj    l---------o pvvvvvvvvvvvvvvvvvvvvvvvvx
 | 
						|
L6:    a------------------------i          m------------------------------w
 | 
						|
       aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx
 | 
						|
 | 
						|
# Regression test for cockroachdb/cockroach#101896. We must return
 | 
						|
# errInvalidL0SublevelOpt in any case where a new L0 file is being AddL0File'd
 | 
						|
# with a largest sequence number below an existing file in the same interval.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:a.SET.2-e.SET.3
 | 
						|
  000006:a.SET.7-b.SET.8
 | 
						|
  000007:d.SET.12-f.SET.12
 | 
						|
----
 | 
						|
file count: 3, sublevels: 2, intervals: 5
 | 
						|
flush split keys(2): [b, e]
 | 
						|
0.1: file count: 2, bytes: 512, width (mean, max): 1.5, 2, interval range: [0, 3]
 | 
						|
	000006:[a#7,1-b#8,1]
 | 
						|
	000007:[d#12,1-f#12,1]
 | 
						|
0.0: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000004:[a#2,1-e#3,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.1:  a---b    d------f
 | 
						|
L0.0:  a------------e
 | 
						|
       aa bb cc dd ee ff
 | 
						|
 | 
						|
# Note that 000006 will bump the sublevel for the incoming file to 2. We
 | 
						|
# should still realize that it's slotting below 000007 and return an error.
 | 
						|
 | 
						|
add-l0-files
 | 
						|
  000015:a.SET.9-g.SET.10
 | 
						|
----
 | 
						|
pebble: L0 sublevel generation optimization cannot be used
 | 
						|
 | 
						|
# Fully-regenerated L0 sublevels allow us to pick an intra-L0 compaction that
 | 
						|
# does not violate sublevel ordering.
 | 
						|
 | 
						|
define
 | 
						|
L0
 | 
						|
  000004:a.SET.2-e.SET.3
 | 
						|
  000006:a.SET.7-b.SET.8
 | 
						|
  000007:d.SET.12-f.SET.12
 | 
						|
  000015:a.SET.9-g.SET.10
 | 
						|
----
 | 
						|
file count: 4, sublevels: 4, intervals: 6
 | 
						|
flush split keys(2): [b, e]
 | 
						|
0.3: file count: 1, bytes: 256, width (mean, max): 2.0, 2, interval range: [2, 3]
 | 
						|
	000007:[d#12,1-f#12,1]
 | 
						|
0.2: file count: 1, bytes: 256, width (mean, max): 5.0, 5, interval range: [0, 4]
 | 
						|
	000015:[a#9,1-g#10,1]
 | 
						|
0.1: file count: 1, bytes: 256, width (mean, max): 1.0, 1, interval range: [0, 0]
 | 
						|
	000006:[a#7,1-b#8,1]
 | 
						|
0.0: file count: 1, bytes: 256, width (mean, max): 3.0, 3, interval range: [0, 2]
 | 
						|
	000004:[a#2,1-e#3,1]
 | 
						|
compacting file count: 0, base compacting intervals: none
 | 
						|
L0.3:           d------f
 | 
						|
L0.2:  a------------------g
 | 
						|
L0.1:  a---b
 | 
						|
L0.0:  a------------e
 | 
						|
       aa bb cc dd ee ff gg
 | 
						|
 | 
						|
# Exclude the d-f file through earliest_unflushed_seqnum.
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=2 earliest_unflushed_seqnum=11
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000015,000006,000004
 | 
						|
seed interval: a-b
 | 
						|
L0.3:           d------f
 | 
						|
L0.2:  a++++++++++++++++++g
 | 
						|
L0.1:  a+++b
 | 
						|
L0.0:  a++++++++++++e
 | 
						|
       aa bb cc dd ee ff gg
 | 
						|
 | 
						|
pick-intra-l0-compaction min_depth=2
 | 
						|
----
 | 
						|
compaction picked with stack depth reduction 3
 | 
						|
000015,000007,000006,000004
 | 
						|
seed interval: a-b
 | 
						|
L0.3:           d++++++f
 | 
						|
L0.2:  a++++++++++++++++++g
 | 
						|
L0.1:  a+++b
 | 
						|
L0.0:  a++++++++++++e
 | 
						|
       aa bb cc dd ee ff gg
 |