ceremonyclient/pebble/sstable/testdata/writer_v3

344 lines
6.1 KiB
Plaintext
Raw Permalink Normal View History

2024-01-03 07:31:42 +00:00
build
a.SET.1:a
----
point: [a#1,1-a#1,1]
seqnums: [1-1]
scan
----
a#1,1:a
scan-range-del
----
scan-range-key
----
build
a.SET.1:a
b.DEL.2:
c.MERGE.3:c
d.RANGEDEL.4:e
f.SET.5:f
g.DEL.6:
h.MERGE.7:h
i.RANGEDEL.8:j
rangekey: j-k:{(#9,RANGEKEYDEL)}
rangekey: k-l:{(#10,RANGEKEYUNSET,@t5)}
rangekey: l-m:{(#11,RANGEKEYSET,@t10,foo)}
----
point: [a#1,1-h#7,2]
rangedel: [d#4,15-j#72057594037927935,15]
rangekey: [j#9,19-m#72057594037927935,21]
seqnums: [1-11]
build
a.SET.1:a
b.DEL.2:
c.MERGE.3:c
d.RANGEDEL.4:e
f.SET.5:f
g.DEL.6:
h.MERGE.7:h
i.RANGEDEL.8:j
----
point: [a#1,1-h#7,2]
rangedel: [d#4,15-j#72057594037927935,15]
seqnums: [1-8]
scan
----
a#1,1:a
b#2,0:
c#3,2:c
f#5,1:f
g#6,0:
h#7,2:h
scan-range-del
----
d-e:{(#4,RANGEDEL)}
i-j:{(#8,RANGEDEL)}
# 3: a-----------m
# 2: f------------s
# 1: j---------------z
build
a.RANGEDEL.3:m
f.RANGEDEL.2:s
j.RANGEDEL.1:z
----
rangedel: [a#3,15-z#72057594037927935,15]
seqnums: [1-3]
scan
----
scan-range-del
----
a-f:{(#3,RANGEDEL)}
f-j:{(#3,RANGEDEL) (#2,RANGEDEL)}
j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
m-s:{(#2,RANGEDEL) (#1,RANGEDEL)}
s-z:{(#1,RANGEDEL)}
scan-range-key
----
# The range tombstone upper bound is exclusive, so a point operation
# on that same key will be the actual boundary.
build
a.RANGEDEL.3:b
b.SET.4:c
----
point: [b#4,1-b#4,1]
rangedel: [a#3,15-b#72057594037927935,15]
seqnums: [3-4]
build
a.RANGEDEL.3:b
b.SET.2:c
----
point: [b#2,1-b#2,1]
rangedel: [a#3,15-b#72057594037927935,15]
seqnums: [2-3]
build
a.RANGEDEL.3:c
b.SET.2:c
----
point: [b#2,1-b#2,1]
rangedel: [a#3,15-c#72057594037927935,15]
seqnums: [2-3]
# Keys must be added in order.
build
a.SET.1:b
a.SET.2:c
----
pebble: keys must be added in strictly increasing order: a#1,SET, a#2,SET
build
b.SET.1:a
a.SET.2:b
----
pebble: keys must be added in strictly increasing order: b#1,SET, a#2,SET
build
b.RANGEDEL.1:c
a.RANGEDEL.2:b
----
pebble: keys must be added in order: b > a
build-raw
.RANGEDEL.1:b
----
rangedel: [#1,15-b#72057594037927935,15]
seqnums: [1-1]
build-raw
a.RANGEDEL.1:c
a.RANGEDEL.2:c
----
pebble: keys must be added in strictly increasing order: a#1,RANGEDEL, a#2,RANGEDEL
build-raw
a.RANGEDEL.1:c
b.RANGEDEL.2:d
----
pebble: overlapping tombstones must be fragmented: a-c:{(#1,RANGEDEL)} vs b-d:{(#2,RANGEDEL)}
build-raw
a.RANGEDEL.2:c
a.RANGEDEL.1:d
----
pebble: overlapping tombstones must be fragmented: a-c:{(#2,RANGEDEL)} vs a-d:{(#1,RANGEDEL)}
build-raw
a.RANGEDEL.1:c
c.RANGEDEL.2:d
----
rangedel: [a#1,15-d#72057594037927935,15]
seqnums: [1-2]
build-raw
rangekey: a-b:{(#1,RANGEKEYSET,@t10,foo)}
rangekey: a-b:{(#2,RANGEKEYSET,@t10,foo)}
----
rangekey: [a#2,21-b#72057594037927935,21]
seqnums: [1-2]
build-raw
rangekey: b-c:{(#2,RANGEKEYSET,@t10,foo)}
rangekey: a-b:{(#1,RANGEKEYSET,@t10,foo)}
----
pebble: spans must be added in order: b > a
build-raw
a.RANGEKEYDEL.1:c
b.RANGEKEYDEL.2:d
----
pebble: overlapping range keys must be fragmented: a#1,RANGEKEYDEL, b#2,RANGEKEYDEL
build-raw
a.RANGEKEYDEL.2:c
a.RANGEKEYDEL.1:d
----
pebble: overlapping range keys must be fragmented: a#2,RANGEKEYDEL, a#1,RANGEKEYDEL
build-raw
rangekey: a-c:{(#1,RANGEKEYSET,@t10,foo)}
rangekey: c-d:{(#2,RANGEKEYSET,@t10,foo)}
----
rangekey: [a#1,21-d#72057594037927935,21]
seqnums: [1-2]
# Range keys may have perfectly aligned spans (including sequence numbers),
# though the key kinds must be ordered (descending).
build-raw
a.RANGEKEYDEL.1:b
a.RANGEKEYDEL.1:b
----
pebble: range keys starts must be added in increasing order: a#1,RANGEKEYDEL, a#1,RANGEKEYDEL
build-raw
rangekey: a-b:{(#1,RANGEKEYSET,@t10,foo) (#1,RANGEKEYUNSET,@t10) (#1,RANGEKEYDEL)}
----
rangekey: [a#1,21-b#72057594037927935,19]
seqnums: [1-1]
# The range-del-v1 format supports unfragmented and unsorted range
# tombstones.
build-raw range-del-v1
a.RANGEDEL.1:c
a.RANGEDEL.2:c
----
rangedel: [a#2,15-c#72057594037927935,15]
seqnums: [1-2]
scan-range-del
----
a-c:{(#2,RANGEDEL) (#1,RANGEDEL)}
build-raw range-del-v1
a.RANGEDEL.1:c
b.RANGEDEL.2:d
----
rangedel: [a#1,15-d#72057594037927935,15]
seqnums: [1-2]
scan-range-del
----
a-b:{(#1,RANGEDEL)}
b-c:{(#2,RANGEDEL) (#1,RANGEDEL)}
c-d:{(#2,RANGEDEL)}
build-raw range-del-v1
a.RANGEDEL.2:c
a.RANGEDEL.1:d
----
rangedel: [a#2,15-d#72057594037927935,15]
seqnums: [1-2]
scan-range-del
----
a-c:{(#2,RANGEDEL) (#1,RANGEDEL)}
c-d:{(#1,RANGEDEL)}
# This matches an early test case, except we're passing overlapping
# range tombstones to the sstable writer and requiring them to be
# fragmented at read time.
build-raw range-del-v1
j.RANGEDEL.1:z
f.RANGEDEL.2:s
a.RANGEDEL.3:m
----
rangedel: [a#3,15-z#72057594037927935,15]
seqnums: [1-3]
scan-range-del
----
a-f:{(#3,RANGEDEL)}
f-j:{(#3,RANGEDEL) (#2,RANGEDEL)}
j-m:{(#3,RANGEDEL) (#2,RANGEDEL) (#1,RANGEDEL)}
m-s:{(#2,RANGEDEL) (#1,RANGEDEL)}
s-z:{(#1,RANGEDEL)}
# Setting a very small index-block-size results in a two-level index.
build block-size=1 index-block-size=1
a.SET.1:a
b.SET.1:b
c.SET.1:c
----
point: [a#1,1-c#1,1]
seqnums: [1-1]
layout
----
0 data (22)
27 data (22)
54 data (22)
81 index (22)
108 index (22)
135 index (22)
162 top-index (51)
218 properties (580)
803 meta-index (33)
841 footer (53)
894 EOF
scan
----
a#1,1:a
b#1,1:b
c#1,1:c
# Enabling leveldb format disables the creation of a two-level index
# (the input data here mirrors the test case above).
build leveldb block-size=1 index-block-size=1
a.SET.1:a
b.SET.1:b
c.SET.1:c
----
point: [a#1,1-c#1,1]
seqnums: [1-1]
layout
----
0 data (21)
26 data (21)
52 data (21)
78 index (47)
130 properties (678)
813 meta-index (33)
851 leveldb-footer (48)
899 EOF
# Range keys, if present, are shown in the layout.
build
rangekey: a-b:{(#3,RANGEKEYSET,@t3,foo)}
rangekey: b-c:{(#2,RANGEKEYSET,@t2,bar)}
rangekey: c-d:{(#1,RANGEKEYSET,@t1,baz)}
----
rangekey: [a#3,21-d#72057594037927935,21]
seqnums: [1-3]
layout
----
0 data (8)
13 index (21)
39 range-key (82)
126 properties (628)
759 meta-index (57)
821 footer (53)
874 EOF