github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/clients/spark/src/test/resources/pebble-testdata/writer (about) 1 build 2 a.SET.1:a 3 ---- 4 point: [a#1,1,a#1,1] 5 range: [#0,0,#0,0] 6 seqnums: [1,1] 7 8 scan 9 ---- 10 a#1,1:a 11 12 scan-range-del 13 ---- 14 15 build 16 a.SET.1:a 17 b.DEL.2:b 18 c.MERGE.3:c 19 d.RANGEDEL.4:e 20 f.SET.5:f 21 g.DEL.6:g 22 h.MERGE.7:h 23 i.RANGEDEL.8:j 24 ---- 25 point: [a#1,1,h#7,2] 26 range: [d#4,15,j#72057594037927935,15] 27 seqnums: [1,8] 28 29 build 30 a.SET.1:a 31 b.DEL.2:b 32 c.MERGE.3:c 33 d.RANGEDEL.4:e 34 f.SET.5:f 35 g.DEL.6:g 36 h.MERGE.7:h 37 i.RANGEDEL.8:j 38 ---- 39 point: [a#1,1,h#7,2] 40 range: [d#4,15,j#72057594037927935,15] 41 seqnums: [1,8] 42 43 scan 44 ---- 45 a#1,1:a 46 b#2,0:b 47 c#3,2:c 48 f#5,1:f 49 g#6,0:g 50 h#7,2:h 51 52 scan-range-del 53 ---- 54 d#4,15:e 55 i#8,15:j 56 57 # 3: a-----------m 58 # 2: f------------s 59 # 1: j---------------z 60 61 build 62 a.RANGEDEL.3:m 63 f.RANGEDEL.2:s 64 j.RANGEDEL.1:z 65 ---- 66 point: [#0,0,#0,0] 67 range: [a#3,15,z#72057594037927935,15] 68 seqnums: [1,3] 69 70 scan 71 ---- 72 73 scan-range-del 74 ---- 75 a#3,15:f 76 f#3,15:j 77 f#2,15:j 78 j#3,15:m 79 j#2,15:m 80 j#1,15:m 81 m#2,15:s 82 m#1,15:s 83 s#1,15:z 84 85 # The range tombstone upper bound is exclusive, so a point operation 86 # on that same key will be the actual boundary. 87 88 build 89 a.RANGEDEL.3:b 90 b.SET.4:c 91 ---- 92 point: [b#4,1,b#4,1] 93 range: [a#3,15,b#72057594037927935,15] 94 seqnums: [3,4] 95 96 build 97 a.RANGEDEL.3:b 98 b.SET.2:c 99 ---- 100 point: [b#2,1,b#2,1] 101 range: [a#3,15,b#72057594037927935,15] 102 seqnums: [2,3] 103 104 build 105 a.RANGEDEL.3:c 106 b.SET.2:c 107 ---- 108 point: [b#2,1,b#2,1] 109 range: [a#3,15,c#72057594037927935,15] 110 seqnums: [2,3] 111 112 # Keys must be added in order. 113 114 build 115 a.SET.1:b 116 a.SET.2:c 117 ---- 118 pebble: keys must be added in order: a#1,SET, a#2,SET 119 120 build 121 b.SET.1:a 122 a.SET.2:b 123 ---- 124 pebble: keys must be added in order: b#1,SET, a#2,SET 125 126 build 127 b.RANGEDEL.1:c 128 a.RANGEDEL.2:b 129 ---- 130 pebble: keys must be added in order: b#1,RANGEDEL > a#2,RANGEDEL 131 132 build-raw 133 .RANGEDEL.1:b 134 ---- 135 point: [#0,0,#0,0] 136 range: [#1,15,b#72057594037927935,15] 137 seqnums: [1,1] 138 139 build-raw 140 a.RANGEDEL.1:c 141 a.RANGEDEL.2:c 142 ---- 143 pebble: keys must be added in order: a#1,RANGEDEL, a#2,RANGEDEL 144 145 build-raw 146 a.RANGEDEL.1:c 147 b.RANGEDEL.2:d 148 ---- 149 pebble: overlapping tombstones must be fragmented: a-c#1 vs b-d#2 150 151 build-raw 152 a.RANGEDEL.2:c 153 a.RANGEDEL.1:d 154 ---- 155 pebble: overlapping tombstones must be fragmented: a-c#2 vs a-d#1 156 157 build-raw 158 a.RANGEDEL.1:c 159 c.RANGEDEL.2:d 160 ---- 161 point: [#0,0,#0,0] 162 range: [a#1,15,d#72057594037927935,15] 163 seqnums: [1,2] 164 165 # The range-del-v1 format supports unfragmented and unsorted range 166 # tombstones. 167 168 build-raw range-del-v1 169 a.RANGEDEL.1:c 170 a.RANGEDEL.2:c 171 ---- 172 point: [#0,0,#0,0] 173 range: [a#2,15,c#72057594037927935,15] 174 seqnums: [1,2] 175 176 scan-range-del 177 ---- 178 a#2,15:c 179 a#1,15:c 180 181 build-raw range-del-v1 182 a.RANGEDEL.1:c 183 b.RANGEDEL.2:d 184 ---- 185 point: [#0,0,#0,0] 186 range: [a#1,15,d#72057594037927935,15] 187 seqnums: [1,2] 188 189 scan-range-del 190 ---- 191 a#1,15:b 192 b#2,15:c 193 b#1,15:c 194 c#2,15:d 195 196 build-raw range-del-v1 197 a.RANGEDEL.2:c 198 a.RANGEDEL.1:d 199 ---- 200 point: [#0,0,#0,0] 201 range: [a#2,15,d#72057594037927935,15] 202 seqnums: [1,2] 203 204 scan-range-del 205 ---- 206 a#2,15:c 207 a#1,15:c 208 c#1,15:d 209 210 # This matches an early test case, except we're passing overlapping 211 # range tombstones to the sstable writer and requiring them to be 212 # fragmented at read time. 213 214 build-raw range-del-v1 215 j.RANGEDEL.1:z 216 f.RANGEDEL.2:s 217 a.RANGEDEL.3:m 218 ---- 219 point: [#0,0,#0,0] 220 range: [a#3,15,z#72057594037927935,15] 221 seqnums: [1,3] 222 223 scan-range-del 224 ---- 225 a#3,15:f 226 f#3,15:j 227 f#2,15:j 228 j#3,15:m 229 j#2,15:m 230 j#1,15:m 231 m#2,15:s 232 m#1,15:s 233 s#1,15:z 234 235 # Setting a very small index-block-size results in a two-level index. 236 237 build block-size=1 index-block-size=1 238 a.SET.1:a 239 b.SET.1:b 240 c.SET.1:c 241 ---- 242 point: [a#1,1,c#1,1] 243 range: [#0,0,#0,0] 244 seqnums: [1,1] 245 246 layout 247 ---- 248 0 data (21) 249 26 data (21) 250 52 data (21) 251 78 index (22) 252 105 index (22) 253 132 index (22) 254 159 top-index (50) 255 214 properties (717) 256 936 meta-index (33) 257 974 footer (53) 258 259 scan 260 ---- 261 a#1,1:a 262 b#1,1:b 263 c#1,1:c 264 265 # Enabling leveldb format disables the creation of a two-level index 266 # (the input data here mirrors the test case above). 267 268 build leveldb block-size=1 index-block-size=1 269 a.SET.1:a 270 b.SET.1:b 271 c.SET.1:c 272 ---- 273 point: [a#1,1,c#1,1] 274 range: [#0,0,#0,0] 275 seqnums: [1,1] 276 277 layout 278 ---- 279 0 data (21) 280 26 data (21) 281 52 data (21) 282 78 index (47) 283 130 properties (678) 284 813 meta-index (33) 285 851 leveldb-footer (48)