mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 07:37:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			122 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# This set of tests validates that manually executed multi level compactions work
 | 
						|
# The multilevel compaction tests mainly live in
 | 
						|
# /testdata/compaction_setup_inputs_multilevel_write_amp
 | 
						|
 | 
						|
# A vanilla multi level compaction
 | 
						|
define level-max-bytes=(L2 : 5) auto-compactions=off
 | 
						|
L1
 | 
						|
  a.SET.3:v b.SET.2:v
 | 
						|
L2
 | 
						|
  a.SET.2:v c.SET.4:v
 | 
						|
L3
 | 
						|
  c.SET.3:v d.SET.2:v
 | 
						|
L4
 | 
						|
  c.SET.2:v d.SET.1:v
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
2:
 | 
						|
  000005:[a#2,SET-c#4,SET]
 | 
						|
3:
 | 
						|
  000006:[c#3,SET-d#2,SET]
 | 
						|
4:
 | 
						|
  000007:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
3:
 | 
						|
  000008:[a#3,SET-d#2,SET]
 | 
						|
4:
 | 
						|
  000007:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
# Conduct a multi level compaction with no output level files
 | 
						|
define level-max-bytes=(L2 : 5) auto-compactions=off
 | 
						|
L1
 | 
						|
  a.SET.3:v b.SET.2:v
 | 
						|
L2
 | 
						|
  a.SET.2:v c.SET.4:v
 | 
						|
L4
 | 
						|
  c.SET.2:v d.SET.1:v
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
2:
 | 
						|
  000005:[a#2,SET-c#4,SET]
 | 
						|
4:
 | 
						|
  000006:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
3:
 | 
						|
  000007:[a#3,SET-c#4,SET]
 | 
						|
4:
 | 
						|
  000006:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
# No multilevel compaction because a move to L2 results in less writeamp than the ML compaction
 | 
						|
# which includes the file in L3.
 | 
						|
define level-max-bytes=(L2 : 5) auto-compactions=off
 | 
						|
L1
 | 
						|
  a.SET.3:v b.SET.2:v
 | 
						|
L3
 | 
						|
  a.SET.2:v c.SET.4:v
 | 
						|
L4
 | 
						|
  c.SET.2:v d.SET.1:v
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
3:
 | 
						|
  000005:[a#2,SET-c#4,SET]
 | 
						|
4:
 | 
						|
  000006:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
2:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
3:
 | 
						|
  000005:[a#2,SET-c#4,SET]
 | 
						|
4:
 | 
						|
  000006:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
# Conduct a multi input compaction without intermediate or output level, basically a move.
 | 
						|
define level-max-bytes=(L2 : 5) auto-compactions=off multi-input-level
 | 
						|
L1
 | 
						|
  a.SET.3:v b.SET.2:v
 | 
						|
L4
 | 
						|
  c.SET.2:v d.SET.1:v
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
4:
 | 
						|
  000005:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
3:
 | 
						|
  000004:[a#3,SET-b#2,SET]
 | 
						|
4:
 | 
						|
  000005:[c#2,SET-d#1,SET]
 | 
						|
 | 
						|
# Don't conduct a multi level compaction on L0.
 | 
						|
define level-max-bytes=(L1 : 5) auto-compactions=off multi-input-level
 | 
						|
L0
 | 
						|
  a.SET.1:v b.SET.2:v
 | 
						|
L1
 | 
						|
  a.SET.3:v c.SET.4:v
 | 
						|
L2
 | 
						|
  c.SET.2:v d.SET.2:v
 | 
						|
----
 | 
						|
0.0:
 | 
						|
  000004:[a#1,SET-b#2,SET]
 | 
						|
1:
 | 
						|
  000005:[a#3,SET-c#4,SET]
 | 
						|
2:
 | 
						|
  000006:[c#2,SET-d#2,SET]
 | 
						|
 | 
						|
compact a-b L0
 | 
						|
----
 | 
						|
1:
 | 
						|
  000007:[a#3,SET-c#4,SET]
 | 
						|
2:
 | 
						|
  000006:[c#2,SET-d#2,SET]
 |