# 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]