mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 08:07:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			283 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			283 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# This is not actually a manual compaction test, and simply uses manual
 | 
						|
# compaction to demonstrate single delete semantics when used with
 | 
						|
# set-with-delete.
 | 
						|
 | 
						|
# Define a sequence of SET=>SET=>DEL=>SET=>SINGLEDEL.
 | 
						|
define target-file-sizes=(1, 1, 1, 1, 1)
 | 
						|
L1
 | 
						|
  a.SINGLEDEL.10:
 | 
						|
L2
 | 
						|
  a.SET.9:v3
 | 
						|
L3
 | 
						|
  a.DEL.8:
 | 
						|
L4
 | 
						|
  a.SET.7:v2
 | 
						|
L5
 | 
						|
  a.SET.6:v1
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
2:
 | 
						|
  000005:[a#9,SET-a#9,SET]
 | 
						|
3:
 | 
						|
  000006:[a#8,DEL-a#8,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
5:
 | 
						|
  000008:[a#6,SET-a#6,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Compact away the DEL.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000009:[a#9,SETWITHDEL-a#9,SETWITHDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
5:
 | 
						|
  000008:[a#6,SET-a#6,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Do two compactions to compact away the SINGLEDEL and 1 SET.
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
2:
 | 
						|
  000010:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000009:[a#9,SETWITHDEL-a#9,SETWITHDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
5:
 | 
						|
  000008:[a#6,SET-a#6,SET]
 | 
						|
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
3:
 | 
						|
  000011:[a#10,DEL-a#10,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
5:
 | 
						|
  000008:[a#6,SET-a#6,SET]
 | 
						|
 | 
						|
# Deleted data is not resurrected.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Define a sequence of SET=>SINGLEDEL=>SET=>SINGLEDEL.
 | 
						|
define target-file-sizes=(1, 1, 1, 1, 1)
 | 
						|
L1
 | 
						|
  a.SINGLEDEL.10:
 | 
						|
L2
 | 
						|
  a.SET.9:v3
 | 
						|
L3
 | 
						|
  a.SINGLEDEL.8:
 | 
						|
L4
 | 
						|
  a.SET.7:v2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
2:
 | 
						|
  000005:[a#9,SET-a#9,SET]
 | 
						|
3:
 | 
						|
  000006:[a#8,SINGLEDEL-a#8,SINGLEDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Compact away the older SINGLEDEL.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SETWITHDEL-a#9,SETWITHDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Do two compactions to compact away the newer SINGLEDEL and 1 SET.
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
2:
 | 
						|
  000009:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SETWITHDEL-a#9,SETWITHDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
3:
 | 
						|
  000010:[a#10,DEL-a#10,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# Deleted data is not resurrected.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Define a sequence of SET=>DEL=>SET=>SINGLEDEL, such that the DEL and
 | 
						|
# SINGLEDEL meet in a compaction. Disable multilevel compaction to exercise the proper test case.
 | 
						|
define snapshots=(9) disable-multi-level
 | 
						|
L1
 | 
						|
  a.SINGLEDEL.10:
 | 
						|
L2
 | 
						|
  a.SET.9:v3
 | 
						|
L3
 | 
						|
  a.DEL.8:
 | 
						|
L4
 | 
						|
  a.SET.7:v2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
2:
 | 
						|
  000005:[a#9,SET-a#9,SET]
 | 
						|
3:
 | 
						|
  000006:[a#8,DEL-a#8,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Compact L2 and L3. The snapshot prevents the DEL=>SET from being collapsed.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SET-a#8,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
close-snapshots
 | 
						|
----
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
2:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SET-a#8,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# The DEL survives.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
3:
 | 
						|
  000009:[a#8,DEL-a#8,DEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Define a sequence of SET=>SINGLEDEL=>SET=>SINGLEDEL, such that the two
 | 
						|
# SINGLEDELs meet in a compaction.
 | 
						|
# To test surface the right test case, disable multi level compaction.
 | 
						|
define snapshots=(9) disable-multi-level
 | 
						|
L1
 | 
						|
  a.SINGLEDEL.10:
 | 
						|
L2
 | 
						|
  a.SET.9:v3
 | 
						|
L3
 | 
						|
  a.SINGLEDEL.8:
 | 
						|
L4
 | 
						|
  a.SET.7:v2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
2:
 | 
						|
  000005:[a#9,SET-a#9,SET]
 | 
						|
3:
 | 
						|
  000006:[a#8,SINGLEDEL-a#8,SINGLEDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
# Compact L2 and L3. The snapshot prevents the SINGLEDEL=>SET from being collapsed.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
1:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SET-a#8,SINGLEDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data.
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 | 
						|
 | 
						|
close-snapshots
 | 
						|
----
 | 
						|
 | 
						|
compact a-b L1
 | 
						|
----
 | 
						|
2:
 | 
						|
  000004:[a#10,SINGLEDEL-a#10,SINGLEDEL]
 | 
						|
3:
 | 
						|
  000008:[a#9,SET-a#8,SINGLEDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# The SINGLEDEL survives.
 | 
						|
compact a-b L2
 | 
						|
----
 | 
						|
3:
 | 
						|
  000009:[a#8,SINGLEDEL-a#8,SINGLEDEL]
 | 
						|
4:
 | 
						|
  000007:[a#7,SET-a#7,SET]
 | 
						|
 | 
						|
# No data
 | 
						|
iter
 | 
						|
first
 | 
						|
----
 | 
						|
.
 |