pub enum MetadataRow {
Inode {
inode_id: InodeId,
inode_kind: InodeKind,
created_seq: ChangeSeq,
created_by: ActorRef,
created_at_ms: u64,
},
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,
actor: ActorRef,
revision_delta_index: u32,
content_ref: ContentRef,
},
Tombstone {
root_inode_id: InodeId,
generation: TombstoneGeneration,
action: TombstoneRowAction,
deleted_at_ms: u64,
actor: ActorRef,
},
ActiveDeletion {
root_inode_id: InodeId,
deleted_at_seq: ChangeSeq,
action: ActiveDeletionRowAction,
},
CommitReceipt {
commit_id: CommitId,
actor: ActorRef,
semantic_commit_fingerprint: String,
committed_seq: ChangeSeq,
committed_at_ms: u64,
message: Option<String>,
},
AttributesRevision {
inode_id: InodeId,
attributes_revision_no: AttributeRevisionNo,
committed_seq: ChangeSeq,
delta_index: u32,
actor: ActorRef,
updated_at_ms: u64,
attributes: Attributes,
},
}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
generation: TombstoneGenerationWhere this event sits in the namespace’s history, and the
generation a later revoke names.
action: TombstoneRowActionWhat this event did; readers take the newest row per root and
treat a revoke newest row as “no active tombstone”.
ActiveDeletion
Derived row used to list currently recoverable deletions.
Materialization writes listed for each tombstone set and removed for
each revoke. This lets trash listing use an ordered range scan instead of
replaying all historical deletion events.
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.
AttributesRevision
Publishes one inode’s complete attribute map at one revision.
The row is whole state, not a change: a reader takes the newest row for an inode and needs nothing older. An inode with no row anywhere is at revision 0 with an empty map, so nothing is written until a caller writes an attribute.
Fields
attributes_revision_no: AttributeRevisionNoMonotonic per-inode attribute revision.
attributes: AttributesThe inode’s complete attribute map at this revision. An empty map is the cleared state.
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