pub struct StatePageRetentionLedger {
pub format_version: u32,
pub gc_epoch: u64,
pub handles: BTreeMap<String, StatePageRetentionHandle>,
pub committed_roots: BTreeMap<String, BTreeSet<String>>,
}Expand description
Persistable host-side mark/sweep interlock for content-addressed state pages. Preparing, verifying, or durably enqueueing a root protects every declared reachable page across process restart. A committed root takes over that lease atomically before the transient handle may disappear.
Fields§
§format_version: u32§gc_epoch: u64§handles: BTreeMap<String, StatePageRetentionHandle>§committed_roots: BTreeMap<String, BTreeSet<String>>Implementations§
Source§impl StatePageRetentionLedger
impl StatePageRetentionLedger
pub fn prepare( &mut self, delta: &PreparedStateDelta, provider: &dyn StatePageProvider, ) -> Result<String, CanwuError>
pub fn verify( &mut self, handle_id: &str, provider: &dyn StatePageProvider, ) -> Result<(), CanwuError>
pub fn mark_durable_ingress( &mut self, handle_id: &str, ) -> Result<(), CanwuError>
pub fn commit(&mut self, handle_id: &str) -> Result<(), CanwuError>
pub fn abandon(&mut self, handle_id: &str) -> Result<(), CanwuError>
pub fn release_committed_root(&mut self, root: &str) -> Result<(), CanwuError>
pub fn begin_gc_epoch(&mut self) -> Result<u64, CanwuError>
pub fn reachable_page_ids(&self) -> BTreeSet<String>
pub fn sweep_candidates( &self, all_page_ids: impl IntoIterator<Item = String>, ) -> BTreeSet<String>
pub fn validate(&self) -> Result<(), CanwuError>
Trait Implementations§
Source§impl Clone for StatePageRetentionLedger
impl Clone for StatePageRetentionLedger
Source§impl Debug for StatePageRetentionLedger
impl Debug for StatePageRetentionLedger
Source§impl Default for StatePageRetentionLedger
impl Default for StatePageRetentionLedger
Source§impl<'de> Deserialize<'de> for StatePageRetentionLedger
impl<'de> Deserialize<'de> for StatePageRetentionLedger
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for StatePageRetentionLedger
Source§impl PartialEq for StatePageRetentionLedger
impl PartialEq for StatePageRetentionLedger
Source§impl Serialize for StatePageRetentionLedger
impl Serialize for StatePageRetentionLedger
impl StructuralPartialEq for StatePageRetentionLedger
Auto Trait Implementations§
impl Freeze for StatePageRetentionLedger
impl RefUnwindSafe for StatePageRetentionLedger
impl Send for StatePageRetentionLedger
impl Sync for StatePageRetentionLedger
impl Unpin for StatePageRetentionLedger
impl UnsafeUnpin for StatePageRetentionLedger
impl UnwindSafe for StatePageRetentionLedger
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more