@@ -67,7 +67,7 @@ flush-log
6767
6868# Another test with the same value separation config, but this time we set a span
6969# policy for the span y-zz that disables value separation by suffix. This should
70- # prevent MVCC garbage from being written to blob files.
70+ # prevent MVCC garbage from being separeted (both into blob files and value blocks) .
7171
7272define value-separation=(enabled, min-size=5, max-ref-depth=3, garbage-ratios=1.0:1.0)
7373----
@@ -127,3 +127,147 @@ pebble.compression_stats: None:234
127127pebble.value-separation.min-size: 5
128128pebble.value-separation.by-suffix.disabled: true
129129obsolete-key: hex:00
130+
131+ define value-separation=(enabled, min-size=5, max-ref-depth=3, garbage-ratios=1.0:1.0)
132+ ----
133+
134+
135+ set-span-policies
136+ a,c val-sep-minimum-size=0 disable-separation-by-suffix
137+ ----
138+
139+
140+ batch
141+ set a@2 a2
142+ set b@5 b5
143+ del b@4
144+ set b@3 bat3
145+ set b@2 bat2
146+ del b@1
147+ set b@1 bat1
148+ set b@0 bat0
149+ ----
150+
151+ flush
152+ ----
153+ L0.0:
154+ 000005:[a@2#10,SET-b@0#17,SET] seqnums:[10-17] points:[a@2#10,SET-b@0#17,SET] size:770
155+
156+ sstable-properties file=000005
157+ ----
158+ rocksdb.num.entries: 7
159+ rocksdb.raw.key.size: 77
160+ rocksdb.raw.value.size: 20
161+ pebble.raw.point-tombstone.key.size: 3
162+ rocksdb.deleted.keys: 1
163+ rocksdb.num.range-deletions: 0
164+ rocksdb.num.data.blocks: 1
165+ rocksdb.comparator: pebble.internal.testkeys
166+ rocksdb.data.size: 157
167+ rocksdb.filter.size: 0
168+ rocksdb.index.size: 36
169+ rocksdb.block.based.table.index.type: 0
170+ pebble.colblk.schema: DefaultKeySchema(pebble.internal.testkeys,16)
171+ rocksdb.merge.operator: pebble.concatenate
172+ rocksdb.merge.operands: 0
173+ rocksdb.property.collectors: [obsolete-key]
174+ rocksdb.compression: Snappy
175+ pebble.compression_stats: None:188
176+ obsolete-key: hex:00
177+
178+
179+ define value-separation=(enabled, min-size=5, max-ref-depth=3, garbage-ratios=1.0:1.0)
180+ ----
181+
182+ set-span-policies
183+ a,c val-sep-minimum-size=0
184+ ----
185+
186+
187+ batch
188+ set a@2 a2
189+ set b@5 b5
190+ del b@4
191+ set b@3 bat3
192+ set b@2 bat2
193+ del b@1
194+ set b@1 bat1
195+ set b@0 bat0
196+ ----
197+
198+ # Although we've disabled value separation into blob files, writing to
199+ # value blocks should still be enabled.
200+ flush
201+ ----
202+ L0.0:
203+ 000005:[a@2#10,SET-b@0#17,SET] seqnums:[10-17] points:[a@2#10,SET-b@0#17,SET] size:880
204+
205+ sstable-properties file=000005
206+ ----
207+ rocksdb.num.entries: 7
208+ rocksdb.raw.key.size: 77
209+ rocksdb.raw.value.size: 20
210+ pebble.raw.point-tombstone.key.size: 3
211+ rocksdb.deleted.keys: 1
212+ rocksdb.num.range-deletions: 0
213+ pebble.value-blocks.size: 25
214+ rocksdb.num.data.blocks: 1
215+ rocksdb.comparator: pebble.internal.testkeys
216+ rocksdb.data.size: 175
217+ rocksdb.filter.size: 0
218+ rocksdb.index.size: 36
219+ rocksdb.block.based.table.index.type: 0
220+ pebble.colblk.schema: DefaultKeySchema(pebble.internal.testkeys,16)
221+ rocksdb.merge.operator: pebble.concatenate
222+ rocksdb.merge.operands: 0
223+ pebble.num.value-blocks: 1
224+ pebble.num.values.in.value-blocks: 3
225+ rocksdb.property.collectors: [obsolete-key]
226+ rocksdb.compression: Snappy
227+ pebble.compression_stats: None:221
228+ obsolete-key: hex:00
229+
230+ batch
231+ set a@2 a2
232+ set b@5 b5
233+ del b@4
234+ set b@3 bat3
235+ set b@2 bat2
236+ del b@1
237+ set b@1 bat1
238+ set b@0 bat0
239+ ----
240+
241+ # Disabling value separation by suffix should also disable writing to value blocks.
242+ set-span-policies
243+ a,c val-sep-minimum-size=0 disable-separation-by-suffix
244+ ----
245+
246+ flush
247+ ----
248+ L0.1:
249+ 000007:[a@2#18,SET-b@0#25,SET] seqnums:[18-25] points:[a@2#18,SET-b@0#25,SET] size:770
250+ L0.0:
251+ 000005:[a@2#10,SET-b@0#17,SET] seqnums:[10-17] points:[a@2#10,SET-b@0#17,SET] size:880
252+
253+ sstable-properties file=000007
254+ ----
255+ rocksdb.num.entries: 7
256+ rocksdb.raw.key.size: 77
257+ rocksdb.raw.value.size: 20
258+ pebble.raw.point-tombstone.key.size: 3
259+ rocksdb.deleted.keys: 1
260+ rocksdb.num.range-deletions: 0
261+ rocksdb.num.data.blocks: 1
262+ rocksdb.comparator: pebble.internal.testkeys
263+ rocksdb.data.size: 157
264+ rocksdb.filter.size: 0
265+ rocksdb.index.size: 36
266+ rocksdb.block.based.table.index.type: 0
267+ pebble.colblk.schema: DefaultKeySchema(pebble.internal.testkeys,16)
268+ rocksdb.merge.operator: pebble.concatenate
269+ rocksdb.merge.operands: 0
270+ rocksdb.property.collectors: [obsolete-key]
271+ rocksdb.compression: Snappy
272+ pebble.compression_stats: None:188
273+ obsolete-key: hex:00
0 commit comments