Skip to main content

Module sst_blocks

Module sst_blocks 

Source
Expand description

Metadata SST block handles, builders, and codecs.

Structs§

BlockHandle
Where one stored section lives inside a segment object, and how to verify it: the CRC32C of the stored bytes and their decoded length.
BuiltSegmentBlocks
A finished segment: the object bytes plus everything the manifest descriptor must carry to read them back.
DecodedDataBlock
One decoded data block: row keys and rows, parallel and in key order. The row type defaults to MetadataRow; index segments decode their own row payload through decode_data_block_rows.
SegmentBlocksBuilder
Builds one segment’s blocks from rows fed in ascending row-key order.
SegmentFilter
A decoded bloom filter; answers “definitely absent” or “maybe present”.
SegmentIndexEntry
One index entry: the last row key of a data block plus its handle.

Enums§

SstBlockCodecError
Describes a violation encountered while building or validating an SST section.

Constants§

DEFAULT_TARGET_BLOCK_BYTES
Target uncompressed size of one data block, in bytes. Sized for direct object-store reads: request round-trips dominate transfer time at this scale, so bulk read paths (directory listings read most rows of several families) want few large ranged GETs, and a lookup fetching one block still moves trivial bytes. Benchmarked over 8 KiB, which priced a full listing at one GET per tiny block.
FILTER_BITS_PER_KEY
Bloom filter sizing: bits reserved per inserted filter key.
FILTER_HASH_COUNT
Bloom filter probe count, chosen for FILTER_BITS_PER_KEY.
RESTART_INTERVAL
Entries between restart points inside a data block.

Functions§

decode_data_block
Decodes one data block from exactly the bytes its handle names.
decode_data_block_rows
Decodes one data block whose rows are R, for segment families whose row payload is not MetadataRow (gram index segments).
decode_filter_block
Decodes the filter block from exactly the bytes its handle names.
decode_index_block
Decodes the index block from exactly the bytes its handle names.
index_blocks_for_key_range
Index positions of the blocks that can hold keys in [lower_bound, upper_bound); None bounds the range at the last block.
string_prefix_upper_bound
The exclusive upper bound for every row key beginning with prefix.