mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 13:47:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			331 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			331 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Size of value index is 3 bytes plus 5 + 5 = 10 bytes of trailer of the value
 | 
						|
# block and value index block. So size 18 - 13 = 5 size of the value in the
 | 
						|
# value block.
 | 
						|
build
 | 
						|
a@2.SET.1:a2
 | 
						|
b@5.SET.7:b5
 | 
						|
b@4.DEL.3:
 | 
						|
b@3.SET.2:bat3
 | 
						|
b@2.SET.1:vbat2
 | 
						|
----
 | 
						|
value-blocks: num-values 1, num-blocks: 1, size: 18
 | 
						|
 | 
						|
scan-raw
 | 
						|
----
 | 
						|
a@2#1,1:in-place a2, same-pre false
 | 
						|
b@5#7,1:in-place b5, same-pre false
 | 
						|
b@4#3,0:
 | 
						|
b@3#2,1:in-place bat3, same-pre false
 | 
						|
b@2#1,1:value-handle len 5 block 0 offset 0, att 5, same-pre true
 | 
						|
 | 
						|
scan
 | 
						|
----
 | 
						|
a@2#1,1:a2
 | 
						|
b@5#7,1:b5
 | 
						|
b@4#3,0:
 | 
						|
b@3#2,1:bat3
 | 
						|
b@2#1,1:vbat2
 | 
						|
 | 
						|
scan-cloned-lazy-values
 | 
						|
----
 | 
						|
0(in-place: len 2): a2
 | 
						|
1(in-place: len 2): b5
 | 
						|
2(in-place: len 0): 
 | 
						|
3(in-place: len 4): bat3
 | 
						|
4(lazy: len 5, attr: 5): vbat2
 | 
						|
 | 
						|
# Size of value index is 3 bytes plus 5 + 5 = 10 bytes of trailer of the value
 | 
						|
# block and value index block. So size 33 - 13 = 20 is the total size of the
 | 
						|
# values in the value block.
 | 
						|
build
 | 
						|
blue@10.SET.20:blue10
 | 
						|
blue@8.SET.18:blue8
 | 
						|
blue@8.SET.16:blue8s
 | 
						|
blue@6.DEL.14:
 | 
						|
blue@4.SET.12:blue4
 | 
						|
blue@3.SET.10:blue3
 | 
						|
red@9.SET.18:red9
 | 
						|
red@7.SET.8:red7
 | 
						|
----
 | 
						|
value-blocks: num-values 4, num-blocks: 1, size: 33
 | 
						|
 | 
						|
scan-raw
 | 
						|
----
 | 
						|
blue@10#20,1:in-place blue10, same-pre false
 | 
						|
blue@8#18,1:value-handle len 5 block 0 offset 0, att 5, same-pre true
 | 
						|
blue@8#16,1:value-handle len 6 block 0 offset 5, att 6, same-pre true
 | 
						|
blue@6#14,0:
 | 
						|
blue@4#12,1:in-place blue4, same-pre false
 | 
						|
blue@3#10,1:value-handle len 5 block 0 offset 11, att 5, same-pre true
 | 
						|
red@9#18,1:in-place red9, same-pre false
 | 
						|
red@7#8,1:value-handle len 4 block 0 offset 16, att 4, same-pre true
 | 
						|
 | 
						|
scan
 | 
						|
----
 | 
						|
blue@10#20,1:blue10
 | 
						|
blue@8#18,1:blue8
 | 
						|
blue@8#16,1:blue8s
 | 
						|
blue@6#14,0:
 | 
						|
blue@4#12,1:blue4
 | 
						|
blue@3#10,1:blue3
 | 
						|
red@9#18,1:red9
 | 
						|
red@7#8,1:red7
 | 
						|
 | 
						|
scan-cloned-lazy-values
 | 
						|
----
 | 
						|
0(in-place: len 6): blue10
 | 
						|
1(lazy: len 5, attr: 5): blue8
 | 
						|
2(lazy: len 6, attr: 6): blue8s
 | 
						|
3(in-place: len 0): 
 | 
						|
4(in-place: len 5): blue4
 | 
						|
5(lazy: len 5, attr: 5): blue3
 | 
						|
6(in-place: len 4): red9
 | 
						|
7(lazy: len 4, attr: 4): red7
 | 
						|
 | 
						|
# Multiple value blocks. Trailers of 5+5+5 for the two value blocks and the
 | 
						|
# value index block, totals to 15. The values are 5+6+15=26. The value index
 | 
						|
# block has to encode two tuples, each of 4 bytes (blockNumByteLength=1,
 | 
						|
# blockOffsetByteLength=2, blockLengthByteLength=1), so 2*4=8. The total is
 | 
						|
# 15+26+8=49 bytes, which corresponds to "size: 49" below.
 | 
						|
build block-size=8
 | 
						|
blue@10.SET.20:blue10
 | 
						|
blue@8.SET.18:blue8
 | 
						|
blue@8.SET.16:blue8s
 | 
						|
blue@6.SET.16:blue6isverylong
 | 
						|
----
 | 
						|
value-blocks: num-values 3, num-blocks: 2, size: 49
 | 
						|
 | 
						|
scan-raw
 | 
						|
----
 | 
						|
blue@10#20,1:in-place blue10, same-pre false
 | 
						|
blue@8#18,1:value-handle len 5 block 0 offset 0, att 5, same-pre true
 | 
						|
blue@8#16,1:value-handle len 6 block 0 offset 5, att 6, same-pre true
 | 
						|
blue@6#16,1:value-handle len 15 block 1 offset 0, att 7, same-pre true
 | 
						|
 | 
						|
scan
 | 
						|
----
 | 
						|
blue@10#20,1:blue10
 | 
						|
blue@8#18,1:blue8
 | 
						|
blue@8#16,1:blue8s
 | 
						|
blue@6#16,1:blue6isverylong
 | 
						|
 | 
						|
scan-cloned-lazy-values
 | 
						|
----
 | 
						|
0(in-place: len 6): blue10
 | 
						|
1(lazy: len 5, attr: 5): blue8
 | 
						|
2(lazy: len 6, attr: 6): blue8s
 | 
						|
3(lazy: len 15, attr: 7): blue6isverylong
 | 
						|
 | 
						|
layout
 | 
						|
----
 | 
						|
         0  data (33)
 | 
						|
         0    record (25 = 3 [0] + 15 + 7) [restart]
 | 
						|
                blue@10#20,1:blue10
 | 
						|
        25    [restart 0]
 | 
						|
        33    [trailer compression=none checksum=0x5fb0d551]
 | 
						|
        38  data (29)
 | 
						|
        38    record (21 = 3 [0] + 14 + 4) [restart]
 | 
						|
                blue@8#18,1:value handle {valueLen:5 blockNum:0 offsetInBlock:0}
 | 
						|
        59    [restart 38]
 | 
						|
        67    [trailer compression=none checksum=0x628e4a10]
 | 
						|
        72  data (29)
 | 
						|
        72    record (21 = 3 [0] + 14 + 4) [restart]
 | 
						|
                blue@8#16,1:value handle {valueLen:6 blockNum:0 offsetInBlock:5}
 | 
						|
        93    [restart 72]
 | 
						|
       101    [trailer compression=none checksum=0x4e65b9b6]
 | 
						|
       106  data (29)
 | 
						|
       106    record (21 = 3 [0] + 14 + 4) [restart]
 | 
						|
                blue@6#16,1:value handle {valueLen:15 blockNum:1 offsetInBlock:0}
 | 
						|
       127    [restart 106]
 | 
						|
       135    [trailer compression=none checksum=0x9f60e629]
 | 
						|
       140  index (28)
 | 
						|
       140    block:0/33 [restart]
 | 
						|
       160    [restart 140]
 | 
						|
       168    [trailer compression=none checksum=0x32b37f08]
 | 
						|
       173  index (27)
 | 
						|
       173    block:38/29 [restart]
 | 
						|
       192    [restart 173]
 | 
						|
       200    [trailer compression=none checksum=0x21d27815]
 | 
						|
       205  index (30)
 | 
						|
       205    block:72/29 [restart]
 | 
						|
       227    [restart 205]
 | 
						|
       235    [trailer compression=none checksum=0xba0b26fe]
 | 
						|
       240  index (22)
 | 
						|
       240    block:106/29 [restart]
 | 
						|
       254    [restart 240]
 | 
						|
       262    [trailer compression=none checksum=0x802be702]
 | 
						|
       267  top-index (85)
 | 
						|
       267    block:140/28 [restart]
 | 
						|
       288    block:173/27 [restart]
 | 
						|
       308    block:205/30 [restart]
 | 
						|
       331    block:240/22 [restart]
 | 
						|
       346    [restart 267]
 | 
						|
       350    [restart 288]
 | 
						|
       354    [restart 308]
 | 
						|
       358    [restart 331]
 | 
						|
       352    [trailer compression=snappy checksum=0x8bd0d63a]
 | 
						|
       357  value-block (11)
 | 
						|
       373  value-block (15)
 | 
						|
       393  value-index (8)
 | 
						|
       406  properties (676)
 | 
						|
       406    obsolete-key (16) [restart]
 | 
						|
       422    pebble.num.value-blocks (27)
 | 
						|
       449    pebble.num.values.in.value-blocks (21)
 | 
						|
       470    pebble.value-blocks.size (21)
 | 
						|
       491    rocksdb.block.based.table.index.type (43)
 | 
						|
       534    rocksdb.block.based.table.prefix.filtering (20)
 | 
						|
       554    rocksdb.block.based.table.whole.key.filtering (23)
 | 
						|
       577    rocksdb.comparator (37)
 | 
						|
       614    rocksdb.compression (16)
 | 
						|
       630    rocksdb.compression_options (106)
 | 
						|
       736    rocksdb.data.size (14)
 | 
						|
       750    rocksdb.deleted.keys (15)
 | 
						|
       765    rocksdb.external_sst_file.global_seqno (41)
 | 
						|
       806    rocksdb.external_sst_file.version (14)
 | 
						|
       820    rocksdb.filter.size (15)
 | 
						|
       835    rocksdb.index.partitions (20)
 | 
						|
       855    rocksdb.index.size (9)
 | 
						|
       864    rocksdb.merge.operands (18)
 | 
						|
       882    rocksdb.merge.operator (24)
 | 
						|
       906    rocksdb.num.data.blocks (19)
 | 
						|
       925    rocksdb.num.entries (11)
 | 
						|
       936    rocksdb.num.range-deletions (19)
 | 
						|
       955    rocksdb.prefix.extractor.name (31)
 | 
						|
       986    rocksdb.property.collectors (34)
 | 
						|
      1020    rocksdb.raw.key.size (16)
 | 
						|
      1036    rocksdb.raw.value.size (14)
 | 
						|
      1050    rocksdb.top-level.index.size (24)
 | 
						|
      1074    [restart 406]
 | 
						|
      1082    [trailer compression=none checksum=0xbf6fe705]
 | 
						|
      1087  meta-index (64)
 | 
						|
      1087    pebble.value_index block:393/8 value-blocks-index-lengths: 1(num), 2(offset), 1(length) [restart]
 | 
						|
      1114    rocksdb.properties block:406/676 [restart]
 | 
						|
      1139    [restart 1087]
 | 
						|
      1143    [restart 1114]
 | 
						|
      1151    [trailer compression=none checksum=0x5a8a2a98]
 | 
						|
      1156  footer (53)
 | 
						|
      1156    checksum type: crc32c
 | 
						|
      1157    meta: offset=1087, length=64
 | 
						|
      1160    index: offset=267, length=85
 | 
						|
      1163    [padding]
 | 
						|
      1197    version: 4
 | 
						|
      1201    magic number: 0xf09faab3f09faab3
 | 
						|
      1209  EOF
 | 
						|
 | 
						|
# Require that [c,e) must be in-place.
 | 
						|
build in-place-bound=(c,e)
 | 
						|
blue@10.SET.20:blue10
 | 
						|
blue@8.SET.18:blue8
 | 
						|
c@10.SET.16:c10
 | 
						|
c@8.SET.14:c8
 | 
						|
e@20.SET.25:eat20
 | 
						|
e@18.SET.23:eat18
 | 
						|
----
 | 
						|
value-blocks: num-values 2, num-blocks: 1, size: 23
 | 
						|
 | 
						|
scan-raw
 | 
						|
----
 | 
						|
blue@10#20,1:in-place blue10, same-pre false
 | 
						|
blue@8#18,1:value-handle len 5 block 0 offset 0, att 5, same-pre true
 | 
						|
c@10#16,1:in-place c10, same-pre false
 | 
						|
c@8#14,1:in-place c8, same-pre false
 | 
						|
e@20#25,1:in-place eat20, same-pre false
 | 
						|
e@18#23,1:value-handle len 5 block 0 offset 5, att 5, same-pre true
 | 
						|
 | 
						|
scan
 | 
						|
----
 | 
						|
blue@10#20,1:blue10
 | 
						|
blue@8#18,1:blue8
 | 
						|
c@10#16,1:c10
 | 
						|
c@8#14,1:c8
 | 
						|
e@20#25,1:eat20
 | 
						|
e@18#23,1:eat18
 | 
						|
 | 
						|
scan-cloned-lazy-values
 | 
						|
----
 | 
						|
0(in-place: len 6): blue10
 | 
						|
1(lazy: len 5, attr: 5): blue8
 | 
						|
2(in-place: len 3): c10
 | 
						|
3(in-place: len 2): c8
 | 
						|
4(in-place: len 5): eat20
 | 
						|
5(lazy: len 5, attr: 5): eat18
 | 
						|
 | 
						|
# Try write empty values to value blocks.
 | 
						|
build
 | 
						|
b@5.SET.7:b5
 | 
						|
b@3.SET.2:
 | 
						|
c@6.DEL.7:
 | 
						|
c@5.DEL.6:
 | 
						|
----
 | 
						|
value-blocks: num-values 0, num-blocks: 0, size: 0
 | 
						|
 | 
						|
scan-raw
 | 
						|
----
 | 
						|
b@5#7,1:in-place b5, same-pre false
 | 
						|
b@3#2,1:in-place , same-pre true
 | 
						|
c@6#7,0:
 | 
						|
c@5#6,0:
 | 
						|
 | 
						|
scan
 | 
						|
----
 | 
						|
b@5#7,1:b5
 | 
						|
b@3#2,1:
 | 
						|
c@6#7,0:
 | 
						|
c@5#6,0:
 | 
						|
 | 
						|
layout
 | 
						|
----
 | 
						|
         0  data (66)
 | 
						|
         0    record (17 = 3 [0] + 11 + 3) [restart]
 | 
						|
                b@5#7,1:b5
 | 
						|
        17    record (14 = 3 [1] + 10 + 1)
 | 
						|
                b@3#2,1:
 | 
						|
        31    record (14 = 3 [0] + 11 + 0)
 | 
						|
                c@6#7,0:
 | 
						|
        45    record (13 = 3 [1] + 10 + 0)
 | 
						|
                c@5#6,0:
 | 
						|
        58    [restart 0]
 | 
						|
        66    [trailer compression=none checksum=0x4e91250f]
 | 
						|
        71  index (22)
 | 
						|
        71    block:0/66 [restart]
 | 
						|
        85    [restart 71]
 | 
						|
        93    [trailer compression=none checksum=0xf80f5bcf]
 | 
						|
        98  properties (606)
 | 
						|
        98    obsolete-key (16) [restart]
 | 
						|
       114    pebble.raw.point-tombstone.key.size (39)
 | 
						|
       153    rocksdb.block.based.table.index.type (43)
 | 
						|
       196    rocksdb.block.based.table.prefix.filtering (20)
 | 
						|
       216    rocksdb.block.based.table.whole.key.filtering (23)
 | 
						|
       239    rocksdb.comparator (37)
 | 
						|
       276    rocksdb.compression (16)
 | 
						|
       292    rocksdb.compression_options (106)
 | 
						|
       398    rocksdb.data.size (13)
 | 
						|
       411    rocksdb.deleted.keys (15)
 | 
						|
       426    rocksdb.external_sst_file.global_seqno (41)
 | 
						|
       467    rocksdb.external_sst_file.version (14)
 | 
						|
       481    rocksdb.filter.size (15)
 | 
						|
       496    rocksdb.index.size (14)
 | 
						|
       510    rocksdb.merge.operands (18)
 | 
						|
       528    rocksdb.merge.operator (24)
 | 
						|
       552    rocksdb.num.data.blocks (19)
 | 
						|
       571    rocksdb.num.entries (11)
 | 
						|
       582    rocksdb.num.range-deletions (19)
 | 
						|
       601    rocksdb.prefix.extractor.name (31)
 | 
						|
       632    rocksdb.property.collectors (34)
 | 
						|
       666    rocksdb.raw.key.size (16)
 | 
						|
       682    rocksdb.raw.value.size (14)
 | 
						|
       696    [restart 98]
 | 
						|
       704    [trailer compression=none checksum=0xb3084f65]
 | 
						|
       709  meta-index (32)
 | 
						|
       709    rocksdb.properties block:98/606 [restart]
 | 
						|
       733    [restart 709]
 | 
						|
       741    [trailer compression=none checksum=0x907a9f2c]
 | 
						|
       746  footer (53)
 | 
						|
       746    checksum type: crc32c
 | 
						|
       747    meta: offset=709, length=32
 | 
						|
       750    index: offset=71, length=22
 | 
						|
       752    [padding]
 | 
						|
       787    version: 4
 | 
						|
       791    magic number: 0xf09faab3f09faab3
 | 
						|
       799  EOF
 |