1+ build block-size=1 index-block-size=1 filter
2+ 3+ 4+ 5+ ----
6+ point: [a@xyz#1,SET-c@xyz#1,SET]
7+ seqnums: [1-1]
8+
9+ rewrite from=@xyz to=@123 block-size=1 index-block-size=1 filter comparer=split-4b-suffix
10+ ----
11+ rewrite failed: mismatched Comparer pebble.internal.testkeys vs comparer-split-4b-suffix, replacement requires same splitter to copy filters
12+
13+ build block-size=1 index-block-size=1 filter
14+ 15+ 16+ 17+ ----
18+ point: [aa@xyz#1,SET-ca@xyz#1,SET]
19+ seqnums: [1-1]
20+
21+ rewrite from=yz to=23 block-size=1 index-block-size=1 filter
22+ ----
23+ rewrite failed: rewriting data blocks: key aa@xyz#1,SET has suffix 0x4078797a; require 0x797a
24+
25+ rewrite from=a@xyz to=a@123 block-size=1 index-block-size=1 filter
26+ ----
27+ rewrite failed: rewriting data blocks: key aa@xyz#1,SET has suffix 0x4078797a; require 0x614078797a
28+
29+ build block-size=1 index-block-size=1 filter
30+ 31+ 32+ 33+ ----
34+ point: [a@0#1,SET-c@0#1,SET]
35+ seqnums: [1-1]
36+
37+ # TODO(sumeer): investigate why the data block sizes shrank from v7 to v8.
38+ # They should increase.
39+ layout
40+ ----
41+ sstable
42+ ├── data offset: 0 length: 82
43+ ├── data offset: 87 length: 82
44+ ├── data offset: 174 length: 82
45+ ├── index offset: 261 length: 38
46+ ├── index offset: 304 length: 39
47+ ├── index offset: 348 length: 37
48+ ├── top-index offset: 390 length: 52
49+ ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 447 length: 69
50+ ├── tiering-histogram offset: 521 length: 52
51+ ├── properties offset: 578 length: 494
52+ ├── meta-index offset: 1077 length: 117
53+ └── footer offset: 1199 length: 61
54+
55+ scan
56+ ----
57+ a@0#1,SET:a
58+ b@0#1,SET:b
59+ c@0#1,SET:c
60+
61+ get
62+ b@0
63+ f@0
64+ c@0
65+ ----
66+ b
67+ get f@0: pebble: not found
68+ c
69+
70+ # TODO(sumeer): investigate why the data block lengths are 1 greater than the
71+ # original.
72+ rewrite from=@0 to=@123 block-size=1 index-block-size=1 filter
73+ ----
74+ point: [a@123#1,SET-c@123#1,SET]
75+ seqnums: [1-1]
76+
77+ layout
78+ ----
79+ sstable
80+ ├── data offset: 0 length: 83
81+ ├── data offset: 88 length: 83
82+ ├── data offset: 176 length: 83
83+ ├── index offset: 264 length: 40
84+ ├── index offset: 309 length: 41
85+ ├── index offset: 355 length: 37
86+ ├── top-index offset: 397 length: 56
87+ ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 458 length: 69
88+ ├── tiering-histogram offset: 532 length: 52
89+ ├── properties offset: 589 length: 494
90+ ├── meta-index offset: 1088 length: 117
91+ └── footer offset: 1210 length: 61
92+
93+ scan
94+ ----
95+ a@123#1,SET:a
96+ b@123#1,SET:b
97+ c@123#1,SET:c
98+
99+ get
100+ b@123
101+ f@123
102+ c@123
103+ ----
104+ b
105+ get f@123: pebble: not found
106+ c
107+
108+ rewrite from=@123 to=@456 block-size=1 index-block-size=1 filter concurrency=2
109+ ----
110+ point: [a@456#1,SET-c@456#1,SET]
111+ seqnums: [1-1]
112+
113+ layout
114+ ----
115+ sstable
116+ ├── data offset: 0 length: 83
117+ ├── data offset: 88 length: 83
118+ ├── data offset: 176 length: 83
119+ ├── index offset: 264 length: 40
120+ ├── index offset: 309 length: 41
121+ ├── index offset: 355 length: 37
122+ ├── top-index offset: 397 length: 56
123+ ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 458 length: 69
124+ ├── tiering-histogram offset: 532 length: 52
125+ ├── properties offset: 589 length: 494
126+ ├── meta-index offset: 1088 length: 117
127+ └── footer offset: 1210 length: 61
128+
129+ scan
130+ ----
131+ a@456#1,SET:a
132+ b@456#1,SET:b
133+ c@456#1,SET:c
134+
135+ get
136+ b@456
137+ f@456
138+ c@456
139+ ----
140+ b
141+ get f@456: pebble: not found
142+ c
143+
144+ rewrite from=@456 to=@123 block-size=1 index-block-size=1 filter concurrency=3
145+ ----
146+ point: [a@123#1,SET-c@123#1,SET]
147+ seqnums: [1-1]
148+
149+ layout
150+ ----
151+ sstable
152+ ├── data offset: 0 length: 83
153+ ├── data offset: 88 length: 83
154+ ├── data offset: 176 length: 83
155+ ├── index offset: 264 length: 40
156+ ├── index offset: 309 length: 41
157+ ├── index offset: 355 length: 37
158+ ├── top-index offset: 397 length: 56
159+ ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 458 length: 69
160+ ├── tiering-histogram offset: 532 length: 52
161+ ├── properties offset: 589 length: 494
162+ ├── meta-index offset: 1088 length: 117
163+ └── footer offset: 1210 length: 61
164+
165+ scan
166+ ----
167+ a@123#1,SET:a
168+ b@123#1,SET:b
169+ c@123#1,SET:c
170+
171+ get
172+ b@123
173+ f@123
174+ c@123
175+ ----
176+ b
177+ get f@123: pebble: not found
178+ c
179+
180+
181+ rewrite from=@123 to=@0 block-size=1 index-block-size=1 filter concurrency=4
182+ ----
183+ point: [a@0#1,SET-c@0#1,SET]
184+ seqnums: [1-1]
185+
186+ layout
187+ ----
188+ sstable
189+ ├── data offset: 0 length: 82
190+ ├── data offset: 87 length: 82
191+ ├── data offset: 174 length: 82
192+ ├── index offset: 261 length: 38
193+ ├── index offset: 304 length: 39
194+ ├── index offset: 348 length: 37
195+ ├── top-index offset: 390 length: 52
196+ ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 447 length: 69
197+ ├── tiering-histogram offset: 521 length: 52
198+ ├── properties offset: 578 length: 494
199+ ├── meta-index offset: 1077 length: 117
200+ └── footer offset: 1199 length: 61
201+
202+ scan
203+ ----
204+ a@0#1,SET:a
205+ b@0#1,SET:b
206+ c@0#1,SET:c
207+
208+ get
209+ b@0
210+ f@0
211+ c@0
212+ ----
213+ b
214+ get f@0: pebble: not found
215+ c
216+
217+ # Rewrite a table that contain only range keys.
218+
219+ build block-size=1 index-block-size=1 filter
220+ Span: a-b:{(#1,RANGEKEYSET,@0)}
221+ Span: b-c:{(#1,RANGEKEYSET,@0)}
222+ Span: c-d:{(#1,RANGEKEYSET,@0)}
223+ ----
224+ rangekey: [a#1,RANGEKEYSET-d#inf,RANGEKEYSET]
225+ seqnums: [1-1]
226+
227+ scan-range-key
228+ ----
229+ a-b:{(#1,RANGEKEYSET,@0)}
230+ b-c:{(#1,RANGEKEYSET,@0)}
231+ c-d:{(#1,RANGEKEYSET,@0)}
232+
233+ rewrite from=@0 to=@123 block-size=1 index-block-size=1 filter
234+ ----
235+ rangekey: [a#1,RANGEKEYSET-d#inf,RANGEKEYSET]
236+ seqnums: [1-1]
237+
238+ scan-range-key
239+ ----
240+ a-b:{(#1,RANGEKEYSET,@123)}
241+ b-c:{(#1,RANGEKEYSET,@123)}
242+ c-d:{(#1,RANGEKEYSET,@123)}
243+
244+ build block-size=1 index-block-size=1 filter
245+ a.SET.1:a
246+ b.SET.1:b
247+ c.SET.1:c
248+ ----
249+ point: [a#1,SET-c#1,SET]
250+ seqnums: [1-1]
251+
252+ rewrite from= to=@123 block-size=1 index-block-size=1 filter
253+ ----
254+ point: [a@123#1,SET-c@123#1,SET]
255+ seqnums: [1-1]
0 commit comments