ceremonyclient/pebble/testdata/excise
Cassandra Heart 2e2a1e4789
v1.2.0 (#31)
2024-01-03 01:31:42 -06:00

340 lines
5.6 KiB
Plaintext

build ext0 format=pebblev2
set a 1
set l 2
----
ingest ext0
----
lsm
----
6:
000004:[a#10,SET-l#10,SET]
batch
set d foo
set f bar
----
flush
----
lsm
----
0.0:
000006:[d#11,SET-f#12,SET]
6:
000004:[a#10,SET-l#10,SET]
excise c k
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000006
deleted: L6 000004
added: L6 000007:[a#10,SET-a#10,SET] seqnums:[10-10] points:[a#10,SET-a#10,SET]
added: L6 000008:[l#10,SET-l#10,SET] seqnums:[10-10] points:[l#10,SET-l#10,SET]
excise a e
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000006
deleted: L6 000004
added: L0 000009:[f#12,SET-f#12,SET] seqnums:[11-12] points:[f#12,SET-f#12,SET]
added: L6 000010:[l#10,SET-l#10,SET] seqnums:[10-10] points:[l#10,SET-l#10,SET]
excise e z
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000006
deleted: L6 000004
added: L0 000011:[d#11,SET-d#11,SET] seqnums:[11-12] points:[d#11,SET-d#11,SET]
added: L6 000012:[a#10,SET-a#10,SET] seqnums:[10-10] points:[a#10,SET-a#10,SET]
excise f l
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000006
deleted: L6 000004
added: L0 000013:[d#11,SET-d#11,SET] seqnums:[11-12] points:[d#11,SET-d#11,SET]
added: L6 000014:[a#10,SET-a#10,SET] seqnums:[10-10] points:[a#10,SET-a#10,SET]
added: L6 000015:[l#10,SET-l#10,SET] seqnums:[10-10] points:[l#10,SET-l#10,SET]
excise f ll
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000006
deleted: L6 000004
added: L0 000016:[d#11,SET-d#11,SET] seqnums:[11-12] points:[d#11,SET-d#11,SET]
added: L6 000017:[a#10,SET-a#10,SET] seqnums:[10-10] points:[a#10,SET-a#10,SET]
excise p q
----
would excise 0 files, use ingest-and-excise to excise.
lsm
----
0.0:
000006:[d#11,SET-f#12,SET]
6:
000004:[a#10,SET-l#10,SET]
iter
first
next
next
next
next
----
a: (1, .)
d: (foo, .)
f: (bar, .)
l: (2, .)
.
build ext1 format=pebblev2
set d foo3
set e bar2
----
ingest-and-excise ext1 excise=c-k
----
lsm
----
6:
000019:[a#10,SET-a#10,SET]
000018:[d#13,SET-e#13,SET]
000020:[l#10,SET-l#10,SET]
iter
first
next
next
next
next
----
a: (1, .)
d: (foo3, .)
e: (bar2, .)
l: (2, .)
.
# More complex cases, with the truncation of file bounds happening at rangedel
# and rangekey bounds.
reset
----
build ext3 format=pebblev2
range-key-set c f @4 foobar
----
ingest ext3
----
build ext4 format=pebblev2
set b bar
del-range g i
----
ingest ext4
----
lsm
----
0.0:
000005:[b#11,SET-i#inf,RANGEDEL]
6:
000004:[c#10,RANGEKEYSET-f#inf,RANGEKEYSET]
excise f g
----
would excise 1 files, use ingest-and-excise to excise.
deleted: L0 000005
added: L0 000006:[b#11,SET-b#11,SET] seqnums:[11-11] points:[b#11,SET-b#11,SET]
added: L0 000007:[g#11,RANGEDEL-i#inf,RANGEDEL] seqnums:[11-11] points:[g#11,RANGEDEL-i#inf,RANGEDEL]
excise b c
----
would excise 1 files, use ingest-and-excise to excise.
deleted: L0 000005
added: L0 000008:[g#11,RANGEDEL-i#inf,RANGEDEL] seqnums:[11-11] points:[g#11,RANGEDEL-i#inf,RANGEDEL]
excise i j
----
would excise 0 files, use ingest-and-excise to excise.
# Excise mid range key. This will not happen in practice, but excise()
# supports it.
excise c d
----
would excise 2 files, use ingest-and-excise to excise.
deleted: L0 000005
deleted: L6 000004
added: L0 000009:[b#11,SET-b#11,SET] seqnums:[11-11] points:[b#11,SET-b#11,SET]
added: L0 000010:[g#11,RANGEDEL-i#inf,RANGEDEL] seqnums:[11-11] points:[g#11,RANGEDEL-i#inf,RANGEDEL]
added: L6 000011:[d#10,RANGEKEYSET-f#inf,RANGEKEYSET] seqnums:[10-10] ranges:[d#10,RANGEKEYSET-f#inf,RANGEKEYSET]
reset
----
# Create an sstable with a range key set.
batch
set a a
set b b
set d d
range-key-set e ee @1 foo
----
flush
----
lsm
----
0.0:
000005:[a#10,SET-ee#inf,RANGEKEYSET]
build ext2
set z z
----
ingest-and-excise ext2 excise=b-c
----
lsm
----
0.0:
000007:[a#10,SET-a#10,SET]
000008:[d#12,SET-ee#inf,RANGEKEYSET]
6:
000006:[z#14,SET-z#14,SET]
# Regression test for https://github.com/cockroachdb/pebble/issues/2947.
reset
----
batch
set a a
set b b
set c c
set d d
set e e
set f f
set g g
set h h
set i i
set j j
----
flush
----
lsm
----
0.0:
000005:[a#10,SET-j#19,SET]
build ext2
set z z
----
ingest-and-excise ext2 excise=d-e
----
lsm
----
0.0:
000007:[a#10,SET-c#12,SET]
000008:[e#14,SET-j#19,SET]
6:
000006:[z#20,SET-z#20,SET]
build ext3
set zz zz
----
ingest-and-excise ext3 excise=g-h
----
# 7, 10, 11 should have the same file backing struct.
lsm
----
0.0:
000007:[a#10,SET-c#12,SET]
000010:[e#14,SET-f#15,SET]
000011:[h#17,SET-j#19,SET]
6:
000006:[z#20,SET-z#20,SET]
000009:[zz#21,SET-zz#21,SET]
confirm-backing 7 10 11
----
file backings are the same
reopen
----
# 7, 10, 11 should still have the same file backing struct even after manifest
# replay.
lsm
----
0.0:
000007:[a#10,SET-c#12,SET]
000010:[e#14,SET-f#15,SET]
000011:[h#17,SET-j#19,SET]
6:
000006:[z#20,SET-z#20,SET]
000009:[zz#21,SET-zz#21,SET]
confirm-backing 7 10 11
----
file backings are the same
# Excise one boundary, the file backing should still be set.
reset
----
batch
set a a
set b b
set c c
set d d
set e e
----
flush
----
lsm
----
0.0:
000005:[a#10,SET-e#14,SET]
build ext2
set z z
----
ingest-and-excise ext2 excise=d-f
----
lsm
----
0.0:
000007:[a#10,SET-c#12,SET]
6:
000006:[z#15,SET-z#15,SET]
reopen
----
lsm
----
0.0:
000007:[a#10,SET-c#12,SET]
6:
000006:[z#15,SET-z#15,SET]