pub struct InlineSnapshotStore;Expand description
Bytes live inside the pointer. Equivalent to today’s in-memory snapshot.
Trait Implementations§
Source§impl Clone for InlineSnapshotStore
impl Clone for InlineSnapshotStore
Source§fn clone(&self) -> InlineSnapshotStore
fn clone(&self) -> InlineSnapshotStore
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for InlineSnapshotStore
Source§impl Debug for InlineSnapshotStore
impl Debug for InlineSnapshotStore
Source§impl Default for InlineSnapshotStore
impl Default for InlineSnapshotStore
Source§fn default() -> InlineSnapshotStore
fn default() -> InlineSnapshotStore
Returns the “default value” for a type. Read more
Source§impl SnapshotStore for InlineSnapshotStore
impl SnapshotStore for InlineSnapshotStore
Source§fn upload<'a>(
&'a self,
_key: SnapshotKey,
bytes: Bytes,
) -> SnapshotStoreFuture<'a, SnapshotLocation>
fn upload<'a>( &'a self, _key: SnapshotKey, bytes: Bytes, ) -> SnapshotStoreFuture<'a, SnapshotLocation>
Persist a snapshot blob and return its location. Stores own naming and
MAY ignore parts of
key (Inline does).Source§fn upload_iter<'a>(
&'a self,
_key: SnapshotKey,
chunks: SnapshotBytesIterator,
) -> SnapshotStoreFuture<'a, SnapshotLocation>
fn upload_iter<'a>( &'a self, _key: SnapshotKey, chunks: SnapshotBytesIterator, ) -> SnapshotStoreFuture<'a, SnapshotLocation>
Persist snapshot bytes from an incremental producer.
Source§fn download<'a>(
&'a self,
location: &'a SnapshotLocation,
) -> SnapshotStoreFuture<'a, Vec<u8>>
fn download<'a>( &'a self, location: &'a SnapshotLocation, ) -> SnapshotStoreFuture<'a, Vec<u8>>
Retrieve a snapshot blob given its location.
Source§fn delete<'a>(
&'a self,
_location: &'a SnapshotLocation,
) -> SnapshotStoreFuture<'a, ()>
fn delete<'a>( &'a self, _location: &'a SnapshotLocation, ) -> SnapshotStoreFuture<'a, ()>
Best-effort delete; missing is not an error.
Source§fn prune_retired<'a>(
&'a self,
_raft_group_id: u32,
_current: &'a SnapshotLocation,
_retain_latest: usize,
) -> SnapshotStoreFuture<'a, ()>
fn prune_retired<'a>( &'a self, _raft_group_id: u32, _current: &'a SnapshotLocation, _retain_latest: usize, ) -> SnapshotStoreFuture<'a, ()>
Best-effort prune of retired snapshots for one Raft group. Backends may
only delete objects that cannot still be referenced by an OpenRaft
snapshot pointer. Inline snapshots have no external lifecycle, so the
default is a no-op.
Source§fn publish_reference<'a>(
&'a self,
_raft_group_id: u32,
_location: &'a SnapshotLocation,
) -> SnapshotStoreFuture<'a, ()>
fn publish_reference<'a>( &'a self, _raft_group_id: u32, _location: &'a SnapshotLocation, ) -> SnapshotStoreFuture<'a, ()>
Publish this node’s current durable pointer. External stores use these
references to prove that an object is unreachable before deleting it;
callers persist local metadata first and rely on the GC grace period
while publishing the corresponding external reference.
Source§fn health_check(&self) -> SnapshotStoreFuture<'_, ()>
fn health_check(&self) -> SnapshotStoreFuture<'_, ()>
Lightweight liveness probe for the backend, used by the snapshot driver
to detect local S3 loss WITHOUT triggering a
build_snapshot (whose
failure openraft treats as fatal). The default is “always healthy”:
in-memory and local-filesystem backends cannot be remotely unavailable.
The S3 backend overrides this with a cheap stat.Source§fn verify_uploaded<'a>(
&'a self,
_location: &'a SnapshotLocation,
) -> SnapshotStoreFuture<'a, ()>
fn verify_uploaded<'a>( &'a self, _location: &'a SnapshotLocation, ) -> SnapshotStoreFuture<'a, ()>
Verify that a freshly-uploaded snapshot is actually retrievable from
the backend. Called immediately after
upload returns Ok, before the
new pointer is published. Catches silent partial-success modes
(multipart upload Init/Part Ok but Complete failed, opendal retry
returning Ok on cached state, etc.) that would otherwise leave
current_snapshot pointing at a 404. Default no-op for backends that
can’t lie about persistence (Inline keeps bytes in the pointer; Local
uses a single fs syscall whose Ok means present). The S3 backend
overrides this with a stat round-trip.Auto Trait Implementations§
impl Freeze for InlineSnapshotStore
impl RefUnwindSafe for InlineSnapshotStore
impl Send for InlineSnapshotStore
impl Sync for InlineSnapshotStore
impl Unpin for InlineSnapshotStore
impl UnsafeUnpin for InlineSnapshotStore
impl UnwindSafe for InlineSnapshotStore
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