ceremonyclient/pebble/testdata/manual_compaction_multilevel

122 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

2024-01-03 07:31:42 +00:00
# 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]