pub enum MetadataRow {
Inode {
inode_id: InodeId,
inode_kind: InodeKind,
created_seq: ChangeSeq,
},
DirentryBind {
parent_inode_id: InodeId,
name_key: NameKey,
display_name: DisplayName,
child_inode_id: InodeId,
bind_seq: ChangeSeq,
bind_delta_index: u32,
},
DirentryUnbind {
parent_inode_id: InodeId,
name_key: NameKey,
display_name: DisplayName,
child_inode_id: InodeId,
bind_seq: ChangeSeq,
bind_delta_index: u32,
unbind_seq: ChangeSeq,
unbind_delta_index: u32,
},
Revision {
inode_id: InodeId,
revision_no: RevisionNo,
committed_seq: ChangeSeq,
committed_at_ms: u64,
revision_delta_index: u32,
content_ref: ContentRef,
},
Tombstone {
root_inode_id: InodeId,
tombstone_seq: ChangeSeq,
tombstone_delta_index: u32,
action: TombstoneRowAction,
deleted_at_ms: u64,
parent_inode_id: Option<InodeId>,
name_key: Option<NameKey>,
display_name: Option<DisplayName>,
},
ActiveDeletion {
root_inode_id: InodeId,
deleted_at_seq: ChangeSeq,
action: ActiveDeletionRowAction,
},
CommitReceipt {
commit_id: CommitId,
semantic_commit_fingerprint: String,
committed_seq: ChangeSeq,
committed_at_ms: u64,
message: Option<String>,
},
}Expand description
Stores one materialized metadata event in an SST segment.
See metadata segments.
Variants§
Inode
Establishes one inode’s immutable identity and kind.
Fields
DirentryBind
Records one generation of a directory name binding.
Fields
display_name: DisplayNameUser-facing component spelling retained for directory responses.
DirentryUnbind
Retires one exact directory-binding generation.
Fields
display_name: DisplayNameUser-facing spelling the retired binding carried.
Revision
Publishes one immutable content revision for a file inode.
Fields
revision_no: RevisionNoMonotonic revision number within that file’s history.
committed_at_ms: u64The owning commit’s observational wall-clock stamp, denormalized
onto the row so revision reads answer times without a receipt
join. Never a validity input; committed_seq is the order.
content_ref: ContentRefImmutable bytes published by the revision.
Tombstone
Changes whether one root inode has an active subtree tombstone.
Fields
action: TombstoneRowActionWhat this event did; readers take the newest row per root and
treat a revoke newest row as “no active tombstone”.
deleted_at_ms: u64Wall-clock stamp of the recording commit. Observational, like
every committed_at_ms.
parent_inode_id: Option<InodeId>Directory that held the deleted binding, for set rows from
path deletes; tombstone rows are immortal, so this is where a
deleted name survives after unbind rows age out.
display_name: Option<DisplayName>User-facing spelling of the deleted binding, when known.
ActiveDeletion
Names one deletion generation in the derived active-deletions family.
The row is not a new event: the materializer derives it from the
tombstone family, adding a listed row for each set and a removed
row for each revoke, so the trash listing is a range scan instead of
a walk over every deletion the namespace ever recorded.
Fields
root_inode_id: InodeIdSubtree root the deletion covers. With deleted_at_seq this is
exactly the handle undelete addresses.
deleted_at_seq: ChangeSeqCommit sequence of the deletion this row speaks for. A removed
row repeats its target’s sequence, not the undelete’s, so the two
rows sort together.
action: ActiveDeletionRowActionWhether the deletion is still recoverable, and the listing detail it carries while it is.
CommitReceipt
Preserves the evidence needed to answer a retried logical commit.
Fields
semantic_commit_fingerprint: StringDigest used to distinguish a safe retry from conflicting id reuse.
Implementations§
Source§impl MetadataRow
impl MetadataRow
Sourcepub fn row_key(&self) -> String
pub fn row_key(&self) -> String
Builds this row’s canonical durable key in its primary table family.
See metadata segments.
Sourcepub fn row_key_for_family(&self, family: MetadataTableFamily) -> String
pub fn row_key_for_family(&self, family: MetadataTableFamily) -> String
Builds this row’s durable key using the selected primary or secondary ordering.
See metadata segments.
Sourcepub fn filter_key_for_family(&self, family: MetadataTableFamily) -> String
pub fn filter_key_for_family(&self, family: MetadataTableFamily) -> String
The exact lookup prefix a point read probes for this row in family,
and therefore the key inserted into the segment’s bloom filter. The
two sides must agree byte-for-byte — a filter is an exact-match
structure — so both are defined here, next to the row keys they
shorten. Range scans at coarser granularity (a whole directory, a
wave of names) do not consult filters.
Trait Implementations§
Source§impl Clone for MetadataRow
impl Clone for MetadataRow
Source§fn clone(&self) -> MetadataRow
fn clone(&self) -> MetadataRow
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more