pub struct MetadataSegmentRef {Show 15 fields
pub owner_namespace_id: NamespaceId,
pub segment_id: MetadataSegmentId,
pub compaction_job_id: Option<MetadataCompactionId>,
pub run_no: RunNo,
pub run_seq: ChangeSeq,
pub level: u32,
pub family: MetadataRowFamily,
pub segment_index: u32,
pub row_count: u64,
pub min_row_key: String,
pub max_row_key: String,
pub index_block: BlockHandle,
pub filter_block: BlockHandle,
pub filter_inline: Option<String>,
pub object_checksum: String,
}Expand description
Reference to one immutable metadata segment in a namespace manifest.
See metadata segments.
Fields§
§owner_namespace_id: NamespaceIdNamespace that stores the segment. This may be a fork source.
segment_id: MetadataSegmentIdImmutable segment id used in the durable object key.
compaction_job_id: Option<MetadataCompactionId>Compaction job id when the segment is stored under a compaction
prefix. Flushed segments omit this field and use metadata/segments/.
The owner, segment id, and optional job id determine the object key.
run_no: RunNoRun this segment belongs to. Every segment one producer wrote together carries the same run number, and no two runs share one.
run_seq: ChangeSeqNamespace sequence at which this run was produced.
level: u32Compaction tier used to order overlapping runs during reads and reorganization.
family: MetadataRowFamilyRow schema and lookup ordering encoded in this segment.
segment_index: u32Zero-based shard position among segments emitted for the same family and run.
row_count: u64Number of row payloads in the segment, used for validation and planning.
min_row_key: StringInclusive least durable row key; the segment is corrupt if decoded rows disagree.
max_row_key: StringInclusive greatest durable row key; range planning skips disjoint segments.
index_block: BlockHandleLocation and verification data for the segment index block.
Segments have no footer, so readers begin with this handle.
filter_block: BlockHandleWhere the segment’s bloom filter block lives and how to verify it.
filter_inline: Option<String>The filter block’s stored bytes inlined as hex, present when the
filter is small (small delta runs). Point lookups consult it to skip
the segment without any object fetch; filter_block still names and
verifies the same bytes, so the inline copy must decode byte-for-byte
identical (same length and CRC32C) or the manifest is corrupt.
object_checksum: StringSHA-256 of the complete stored segment, formatted as
sha256:<64 lowercase hex>. Caches and offline verification use this
value. Ranged reads verify each block with its CRC32C instead.
Trait Implementations§
Source§impl Clone for MetadataSegmentRef
impl Clone for MetadataSegmentRef
Source§fn clone(&self) -> MetadataSegmentRef
fn clone(&self) -> MetadataSegmentRef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more