github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/testdata/compaction_picker_concurrency (about) 1 # Test a file L1.000203 that would be a candidate for a move compaction into 2 # L2, except that it's bordered by two files participating in the same 3 # compaction. This is possible if 000203 created by a L0->L1 compaction that 4 # completed after the compaction of 000201 and 000202 began. 5 # 6 # The in-progress compaction of 000201 and 000202 will write an output table 7 # to L2 that would conflict with 000203 if 000203 was moved into L2. 8 # 9 # NB: The L0 files are used to increase the permitted compaction concurrency. 10 define 11 L0 12 000301:a.SET.31-a.SET.31 13 000302:a.SET.32-a.SET.32 14 000303:a.SET.33-a.SET.33 15 000304:a.SET.34-a.SET.34 16 000305:a.SET.35-a.SET.35 17 L1 18 000201:a.SET.21-b.SET.22 19 000203:k.SET.25-n.SET.26 size=512000000 20 000202:x.SET.23-z.SET.24 21 L2 22 000101:a.SET.11-f.SET.12 23 L3 24 000010:a.SET.1-z.SET.2 25 compactions 26 L1 000201 000202 -> L2 000101 27 ---- 28 0.4: 29 000305:[a#35,SET-a#35,SET] 30 0.3: 31 000304:[a#34,SET-a#34,SET] 32 0.2: 33 000303:[a#33,SET-a#33,SET] 34 0.1: 35 000302:[a#32,SET-a#32,SET] 36 0.0: 37 000301:[a#31,SET-a#31,SET] 38 1: 39 000201:[a#21,SET-b#22,SET] 40 000203:[k#25,SET-n#26,SET] 41 000202:[x#23,SET-z#24,SET] 42 2: 43 000101:[a#11,SET-f#12,SET] 44 3: 45 000010:[a#1,SET-z#2,SET] 46 compactions 47 L1 000201 000202 -> L2 000101 48 49 pick-auto l0_compaction_threshold=10 50 ---- 51 nil 52 53 # Test that lowering L0CompactionConcurrency opens up more compaction slots. 54 55 define 56 L0 57 000301:a.SET.31-a.SET.31 58 000302:a.SET.32-a.SET.32 59 000303:a.SET.33-a.SET.33 60 000304:a.SET.34-a.SET.34 61 000305:a.SET.35-a.SET.35 62 L1 63 000201:a.SET.21-b.SET.22 64 000203:k.SET.25-n.SET.26 65 000202:x.SET.23-z.SET.24 66 L2 67 000101:a.SET.11-f.SET.12 68 L3 69 000010:a.SET.1-z.SET.2 70 compactions 71 L1 000202 -> L2 000101 72 ---- 73 0.4: 74 000305:[a#35,SET-a#35,SET] 75 0.3: 76 000304:[a#34,SET-a#34,SET] 77 0.2: 78 000303:[a#33,SET-a#33,SET] 79 0.1: 80 000302:[a#32,SET-a#32,SET] 81 0.0: 82 000301:[a#31,SET-a#31,SET] 83 1: 84 000201:[a#21,SET-b#22,SET] 85 000203:[k#25,SET-n#26,SET] 86 000202:[x#23,SET-z#24,SET] 87 2: 88 000101:[a#11,SET-f#12,SET] 89 3: 90 000010:[a#1,SET-z#2,SET] 91 compactions 92 L1 000202 -> L2 000101 93 94 pick-auto l0_compaction_concurrency=10 95 ---- 96 nil 97 98 pick-auto l0_compaction_concurrency=5 99 ---- 100 L0 -> L1 101 L0: 000301,000302,000303,000304,000305 102 L1: 000201 103 grandparents: 000101 104 105 pick-auto l0_compaction_concurrency=1 106 ---- 107 L0 -> L1 108 L0: 000301,000302,000303,000304,000305 109 L1: 000201 110 grandparents: 000101 111 112 # Test that lowering CompactionDebtConcurrency opens up more concurrent 113 # compaction slots. 114 115 # Test that lowering L0CompactionConcurrency opens up more compaction slots. 116 117 define 118 L0 119 000301:a.SET.31-a.SET.31 size=64000 120 000302:a.SET.32-a.SET.32 size=64000 121 000303:a.SET.33-a.SET.33 size=64000 122 000304:a.SET.34-a.SET.34 size=64000 123 000305:a.SET.35-a.SET.35 size=64000 124 L1 125 000201:a.SET.21-b.SET.22 size=640000 126 000203:k.SET.25-n.SET.26 size=640000 127 000202:x.SET.23-z.SET.24 size=640000 128 L2 129 000101:a.SET.11-f.SET.12 size=6400000 130 L3 131 000010:a.SET.1-z.SET.2 132 compactions 133 L1 000202 -> L2 000101 134 ---- 135 0.4: 136 000305:[a#35,SET-a#35,SET] 137 0.3: 138 000304:[a#34,SET-a#34,SET] 139 0.2: 140 000303:[a#33,SET-a#33,SET] 141 0.1: 142 000302:[a#32,SET-a#32,SET] 143 0.0: 144 000301:[a#31,SET-a#31,SET] 145 1: 146 000201:[a#21,SET-b#22,SET] 147 000203:[k#25,SET-n#26,SET] 148 000202:[x#23,SET-z#24,SET] 149 2: 150 000101:[a#11,SET-f#12,SET] 151 3: 152 000010:[a#1,SET-z#2,SET] 153 compactions 154 L1 000202 -> L2 000101 155 156 pick-auto l0_compaction_concurrency=10 compaction_debt_concurrency=5120000 157 ---- 158 nil 159 160 pick-auto l0_compaction_concurrency=10 compaction_debt_concurrency=512000 161 ---- 162 L0 -> L1 163 L0: 000301,000302,000303,000304,000305 164 L1: 000201 165 grandparents: 000101 166 167 pick-auto l0_compaction_concurrency=5 compaction_debt_concurrency=5120000 168 ---- 169 L0 -> L1 170 L0: 000301,000302,000303,000304,000305 171 L1: 000201 172 grandparents: 000101