@@ -1051,6 +1051,215 @@ sstable
1051
1051
└── 049 magic number: 0xf09faab3f09faab3
1052
1052
1053
1053
# Same as above but with (Pebble,v7) [footer attributes].
1054
+ build table-format=Pebble,v7
1055
+ blue@10.SET.20:blue10
1056
+ blue@8.SET.18:blue8
1057
+ blue@8.SET.16:blue8s
1058
+ blue@6.DEL.14:
1059
+ blue@4.SET.12:blue4
1060
+ blue@3.SET.10:blue3
1061
+ red@9.SET.18:red9
1062
+ red@7.SET.8:red7
1063
+ ----
1064
+ value-blocks: num-values 4, num-blocks: 1, size: 33
1065
+
1066
+ scan
1067
+ ----
1068
+ blue@10#20,SET:blue10
1069
+ blue@8#18,SET:blue8
1070
+ blue@8#16,SET:blue8s
1071
+ blue@6#14,DEL:
1072
+ blue@4#12,SET:blue4
1073
+ blue@3#10,SET:blue3
1074
+ red@9#18,SET:red9
1075
+ red@7#8,SET:red7
1076
+
1077
+ scan-cloned-lazy-values
1078
+ ----
1079
+ 0(in-place: len 6): blue10
1080
+ 1(lazy: len 5, attr: 5): blue8
1081
+ 2(lazy: len 6, attr: 6): blue8s
1082
+ 3(in-place: len 0):
1083
+ 4(in-place: len 5): blue4
1084
+ 5(lazy: len 5, attr: 5): blue3
1085
+ 6(in-place: len 4): red9
1086
+ 7(lazy: len 4, attr: 4): red7
1087
+
1088
+ layout
1089
+ ----
1090
+ sstable
1091
+ ├── data offset: 0 length: 186
1092
+ │ ├── data block header
1093
+ │ │ ├── columnar block header
1094
+ │ │ │ ├── 000-004: x 07000000 # maximum key length: 7
1095
+ │ │ │ ├── 004-005: x 01 # version 1
1096
+ │ │ │ ├── 005-007: x 0700 # 7 columns
1097
+ │ │ │ ├── 007-011: x 08000000 # 8 rows
1098
+ │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes
1099
+ │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46
1100
+ │ │ │ ├── 016-017: b 00000011 # col 1: bytes
1101
+ │ │ │ ├── 017-021: x 41000000 # col 1: page start 65
1102
+ │ │ │ ├── 021-022: b 00000010 # col 2: uint
1103
+ │ │ │ ├── 022-026: x 5c000000 # col 2: page start 92
1104
+ │ │ │ ├── 026-027: b 00000001 # col 3: bool
1105
+ │ │ │ ├── 027-031: x 6e000000 # col 3: page start 110
1106
+ │ │ │ ├── 031-032: b 00000011 # col 4: bytes
1107
+ │ │ │ ├── 032-036: x 80000000 # col 4: page start 128
1108
+ │ │ │ ├── 036-037: b 00000001 # col 5: bool
1109
+ │ │ │ ├── 037-041: x a9000000 # col 5: page start 169
1110
+ │ │ │ ├── 041-042: b 00000001 # col 6: bool
1111
+ │ │ │ └── 042-046: x c0000000 # col 6: page start 192
1112
+ │ │ ├── data for column 0 (prefixbytes)
1113
+ │ │ │ ├── 046-047: x 04 # bundle size: 16
1114
+ │ │ │ ├── offsets table
1115
+ │ │ │ │ ├── 047-048: x 01 # encoding: 1b
1116
+ │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [58 overall]
1117
+ │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [58 overall]
1118
+ │ │ │ │ ├── 050-051: x 04 # data[2] = 4 [62 overall]
1119
+ │ │ │ │ ├── 051-052: x 04 # data[3] = 4 [62 overall]
1120
+ │ │ │ │ ├── 052-053: x 04 # data[4] = 4 [62 overall]
1121
+ │ │ │ │ ├── 053-054: x 04 # data[5] = 4 [62 overall]
1122
+ │ │ │ │ ├── 054-055: x 04 # data[6] = 4 [62 overall]
1123
+ │ │ │ │ ├── 055-056: x 04 # data[7] = 4 [62 overall]
1124
+ │ │ │ │ ├── 056-057: x 07 # data[8] = 7 [65 overall]
1125
+ │ │ │ │ └── 057-058: x 07 # data[9] = 7 [65 overall]
1126
+ │ │ │ └── data
1127
+ │ │ │ ├── 058-058: x # data[00]: (block prefix)
1128
+ │ │ │ ├── 058-058: x # data[01]: (bundle prefix)
1129
+ │ │ │ ├── 058-062: x 626c7565 # data[02]: blue
1130
+ │ │ │ ├── 062-062: x # data[03]: ....
1131
+ │ │ │ ├── 062-062: x # data[04]: ....
1132
+ │ │ │ ├── 062-062: x # data[05]: ....
1133
+ │ │ │ ├── 062-062: x # data[06]: ....
1134
+ │ │ │ ├── 062-062: x # data[07]: ....
1135
+ │ │ │ ├── 062-065: x 726564 # data[08]: red
1136
+ │ │ │ └── 065-065: x # data[09]: ...
1137
+ │ │ ├── data for column 1 (bytes)
1138
+ │ │ │ ├── offsets table
1139
+ │ │ │ │ ├── 065-066: x 01 # encoding: 1b
1140
+ │ │ │ │ ├── 066-067: x 00 # data[0] = 0 [75 overall]
1141
+ │ │ │ │ ├── 067-068: x 03 # data[1] = 3 [78 overall]
1142
+ │ │ │ │ ├── 068-069: x 05 # data[2] = 5 [80 overall]
1143
+ │ │ │ │ ├── 069-070: x 07 # data[3] = 7 [82 overall]
1144
+ │ │ │ │ ├── 070-071: x 09 # data[4] = 9 [84 overall]
1145
+ │ │ │ │ ├── 071-072: x 0b # data[5] = 11 [86 overall]
1146
+ │ │ │ │ ├── 072-073: x 0d # data[6] = 13 [88 overall]
1147
+ │ │ │ │ ├── 073-074: x 0f # data[7] = 15 [90 overall]
1148
+ │ │ │ │ └── 074-075: x 11 # data[8] = 17 [92 overall]
1149
+ │ │ │ └── data
1150
+ │ │ │ ├── 075-078: x 403130 # data[0]: @10
1151
+ │ │ │ ├── 078-080: x 4038 # data[1]: @8
1152
+ │ │ │ ├── 080-082: x 4038 # data[2]: @8
1153
+ │ │ │ ├── 082-084: x 4036 # data[3]: @6
1154
+ │ │ │ ├── 084-086: x 4034 # data[4]: @4
1155
+ │ │ │ ├── 086-088: x 4033 # data[5]: @3
1156
+ │ │ │ ├── 088-090: x 4039 # data[6]: @9
1157
+ │ │ │ └── 090-092: x 4037 # data[7]: @7
1158
+ │ │ ├── data for column 2 (uint)
1159
+ │ │ │ ├── 092-093: x 02 # encoding: 2b
1160
+ │ │ │ ├── 093-094: x 00 # padding (aligning to 16-bit boundary)
1161
+ │ │ │ ├── 094-096: x 0114 # data[0] = 5121
1162
+ │ │ │ ├── 096-098: x 0112 # data[1] = 4609
1163
+ │ │ │ ├── 098-100: x 0110 # data[2] = 4097
1164
+ │ │ │ ├── 100-102: x 000e # data[3] = 3584
1165
+ │ │ │ ├── 102-104: x 010c # data[4] = 3073
1166
+ │ │ │ ├── 104-106: x 010a # data[5] = 2561
1167
+ │ │ │ ├── 106-108: x 0112 # data[6] = 4609
1168
+ │ │ │ └── 108-110: x 0108 # data[7] = 2049
1169
+ │ │ ├── data for column 3 (bool)
1170
+ │ │ │ ├── 110-111: x 00 # default bitmap encoding
1171
+ │ │ │ ├── 111-112: x 00 # padding to align to 64-bit boundary
1172
+ │ │ │ ├── 112-120: b 0100000100000000000000000000000000000000000000000000000000000000 # bitmap word 0
1173
+ │ │ │ └── 120-128: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63
1174
+ │ │ ├── data for column 4 (bytes)
1175
+ │ │ │ ├── offsets table
1176
+ │ │ │ │ ├── 128-129: x 01 # encoding: 1b
1177
+ │ │ │ │ ├── 129-130: x 00 # data[0] = 0 [138 overall]
1178
+ │ │ │ │ ├── 130-131: x 06 # data[1] = 6 [144 overall]
1179
+ │ │ │ │ ├── 131-132: x 0a # data[2] = 10 [148 overall]
1180
+ │ │ │ │ ├── 132-133: x 0e # data[3] = 14 [152 overall]
1181
+ │ │ │ │ ├── 133-134: x 0e # data[4] = 14 [152 overall]
1182
+ │ │ │ │ ├── 134-135: x 13 # data[5] = 19 [157 overall]
1183
+ │ │ │ │ ├── 135-136: x 17 # data[6] = 23 [161 overall]
1184
+ │ │ │ │ ├── 136-137: x 1b # data[7] = 27 [165 overall]
1185
+ │ │ │ │ └── 137-138: x 1f # data[8] = 31 [169 overall]
1186
+ │ │ │ └── data
1187
+ │ │ │ ├── 138-144: x 626c75653130 # data[0]: blue10
1188
+ │ │ │ ├── 144-148: x a5050000 # data[1]: "\xa5\x05\x00\x00"
1189
+ │ │ │ ├── 148-152: x a6060005 # data[2]: "\xa6\x06\x00\x05"
1190
+ │ │ │ ├── 152-152: x # data[3]:
1191
+ │ │ │ ├── 152-157: x 626c756534 # data[4]: blue4
1192
+ │ │ │ ├── 157-161: x a505000b # data[5]: "\xa5\x05\x00\v"
1193
+ │ │ │ ├── 161-165: x 72656439 # data[6]: red9
1194
+ │ │ │ └── 165-169: x a4040010 # data[7]: "\xa4\x04\x00\x10"
1195
+ │ │ ├── data for column 5 (bool)
1196
+ │ │ │ ├── 169-170: x 00 # default bitmap encoding
1197
+ │ │ │ ├── 170-176: x 000000000000 # padding to align to 64-bit boundary
1198
+ │ │ │ ├── 176-184: b 1010011000000000000000000000000000000000000000000000000000000000 # bitmap word 0
1199
+ │ │ │ └── 184-192: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63
1200
+ │ │ ├── data for column 6 (bool)
1201
+ │ │ │ ├── 192-193: x 00 # default bitmap encoding
1202
+ │ │ │ ├── 193-200: x 00000000000000 # padding to align to 64-bit boundary
1203
+ │ │ │ ├── 200-208: b 0000010000000000000000000000000000000000000000000000000000000000 # bitmap word 0
1204
+ │ │ │ └── 208-216: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63
1205
+ │ │ └── 216-217: x 00 # block padding byte
1206
+ │ ├── blue@10#20,SET:blue10
1207
+ │ ├── blue@8#18,SET:value handle {ValueLen:5 BlockNum:0 OffsetInBlock:0}
1208
+ │ ├── blue@8#16,SET:value handle {ValueLen:6 BlockNum:0 OffsetInBlock:5}
1209
+ │ ├── blue@6#14,DEL:
1210
+ │ ├── blue@4#12,SET:blue4
1211
+ │ ├── blue@3#10,SET:value handle {ValueLen:5 BlockNum:0 OffsetInBlock:11}
1212
+ │ ├── red@9#18,SET:red9
1213
+ │ ├── red@7#8,SET:value handle {ValueLen:4 BlockNum:0 OffsetInBlock:16}
1214
+ │ └── trailer [compression=snappy checksum=0x194cf241]
1215
+ ├── index offset: 191 length: 36
1216
+ │ ├── 00000 block:0/186
1217
+ │ │
1218
+ │ └── trailer [compression=none checksum=0x8e45fa7b]
1219
+ ├── value-block offset: 232 length: 20
1220
+ │ └── trailer [compression=none checksum=0x460ef26f]
1221
+ ├── value-index offset: 257 length: 3
1222
+ │ └── trailer [compression=none checksum=0x762643d7]
1223
+ ├── properties offset: 265 length: 575
1224
+ │ ├── 00000 obsolete-key (13)
1225
+ │ ├── 00013 pebble.colblk.schema (65)
1226
+ │ ├── 00078 pebble.num.value-blocks (24)
1227
+ │ ├── 00102 pebble.num.values.in.value-blocks (34)
1228
+ │ ├── 00136 pebble.raw.point-tombstone.key.size (36)
1229
+ │ ├── 00172 pebble.value-blocks.size (25)
1230
+ │ ├── 00197 rocksdb.block.based.table.index.type (40)
1231
+ │ ├── 00237 rocksdb.comparator (42)
1232
+ │ ├── 00279 rocksdb.compression (25)
1233
+ │ ├── 00304 rocksdb.compression_options (122)
1234
+ │ ├── 00426 rocksdb.data.size (19)
1235
+ │ ├── 00445 rocksdb.deleted.keys (21)
1236
+ │ ├── 00466 rocksdb.filter.size (20)
1237
+ │ ├── 00486 rocksdb.index.size (19)
1238
+ │ ├── 00505 rocksdb.merge.operands (23)
1239
+ │ ├── 00528 rocksdb.merge.operator (40)
1240
+ │ ├── 00568 rocksdb.num.data.blocks (24)
1241
+ │ ├── 00592 rocksdb.num.entries (20)
1242
+ │ ├── 00612 rocksdb.num.range-deletions (28)
1243
+ │ ├── 00640 rocksdb.property.collectors (41)
1244
+ │ ├── 00681 rocksdb.raw.key.size (21)
1245
+ │ ├── 00702 rocksdb.raw.value.size (23)
1246
+ │ └── trailer [compression=snappy checksum=0x7caf143a]
1247
+ ├── meta-index offset: 845 length: 72
1248
+ │ ├── 0000 pebble.value_index block:257/3 value-blocks-index-lengths: 1(num), 1(offset), 1(length)
1249
+ │ │
1250
+ │ ├── 0001 rocksdb.properties block:265/575
1251
+ │ │
1252
+ │ └── trailer [compression=none checksum=0xb9aeae4a]
1253
+ └── footer offset: 922 length: 61
1254
+ ├── 000 checksum type: crc32c
1255
+ ├── 001 meta: offset=845, length=72
1256
+ ├── 004 index: offset=191, length=36
1257
+ ├── 041 attributes: [ValueBlocks]
1258
+ ├── 045 footer checksum: 0xca64ec92
1259
+ ├── 049 version: 7
1260
+ └── 053 magic number: 0xf09faab3f09faab3
1261
+
1262
+
1054
1263
build table-format=Pebble,v7
1055
1264
b@5.SET.7:b5
1056
1265
b@3.SET.2:
@@ -1188,7 +1397,7 @@ sstable
1188
1397
├── 000 checksum type: crc32c
1189
1398
├── 001 meta: offset=676, length=46
1190
1399
├── 004 index: offset=105, length=36
1191
- ├── 041 attributes: [ValueBlocks,RangeKeyUnsets,RangeDels,TwoLevelIndex ]
1400
+ ├── 041 attributes: []
1192
1401
├── 045 footer checksum: 0xbcb59445
1193
1402
├── 049 version: 7
1194
1403
└── 053 magic number: 0xf09faab3f09faab3
0 commit comments