github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/testdata/concurrent_excise (about) 1 2 reset 3 ---- 4 5 switch 1 6 ---- 7 ok 8 9 batch 10 set d foo 11 set e bar 12 ---- 13 14 flush 15 ---- 16 17 compact a-z 18 ---- 19 ok 20 21 switch 2 22 ---- 23 ok 24 25 batch 26 set c fooz 27 set f foobar 28 ---- 29 30 flush 31 ---- 32 33 compact a-z 34 ---- 35 ok 36 37 batch 38 set d foobar 39 ---- 40 41 flush 42 ---- 43 44 lsm 45 ---- 46 0.0: 47 000007:[d#12,SET-d#12,SET] 48 6: 49 000005:[c#10,SET-f#11,SET] 50 51 compact a-z block=c1 52 ---- 53 spun off in separate goroutine 54 55 iter 56 first 57 next 58 next 59 next 60 next 61 ---- 62 c: (fooz, .) 63 d: (foobar, .) 64 f: (foobar, .) 65 . 66 . 67 68 # This excise should cancel the in-flight compaction, causing it to error out 69 # below. The eventually file-only snapshot should go through because it's not 70 # waiting on any keys in memtables 71 72 file-only-snapshot s1 73 c e 74 ---- 75 ok 76 77 replicate 1 2 b e 78 ---- 79 replicated 1 shared SSTs 80 81 unblock c1 82 ---- 83 ok 84 85 wait-for-file-only-snapshot s1 86 ---- 87 ok 88 89 lsm 90 ---- 91 6: 92 000010:[d#13,SET-d#13,SET] 93 000011:[f#11,SET-f#11,SET] 94 95 compact a-z 96 ---- 97 ok 98 99 wait-for-background-error 100 ---- 101 pebble: compaction cancelled by a concurrent operation, will retry compaction 102 103 iter 104 first 105 next 106 next 107 next 108 next 109 ---- 110 d: (foo, .) 111 f: (foobar, .) 112 . 113 . 114 . 115 116 batch 117 set d fo 118 set ee foobar 119 set f3 something 120 ---- 121 122 flush 123 ---- 124 125 compact a-z 126 ---- 127 ok 128 129 switch 1 130 ---- 131 ok 132 133 # The below file-only snapshot should be errored out by the concurrent excise. 134 135 batch 136 set d something 137 ---- 138 139 flush 140 ---- 141 142 batch 143 set dd memory 144 ---- 145 146 file-only-snapshot s2 147 c e 148 ---- 149 ok 150 151 iter snapshot=s2 152 first 153 next 154 next 155 next 156 ---- 157 d: (something, .) 158 dd: (memory, .) 159 e: (bar, .) 160 . 161 162 replicate 2 1 c dd 163 ---- 164 replicated 1 shared SSTs 165 166 wait-for-file-only-snapshot s2 167 ---- 168 pebble: snapshot excised before conversion to file-only snapshot 169 170 iter snapshot=s2 171 first 172 next 173 next 174 next 175 ---- 176 pebble: snapshot excised before conversion to file-only snapshot