mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-12-26 16:45:18 +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
|
|
----
|
|
.
|