mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-10-31 14:47:29 +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]
 | 
