pub struct ObjectStoreCheckpointer { /* private fields */ }Expand description
Production Checkpointer backed by an ObjectStore.
Supports concurrent partition uploads and SHA-256 integrity verification.
Implementations§
Source§impl ObjectStoreCheckpointer
impl ObjectStoreCheckpointer
Sourcepub fn new(
store: Arc<dyn ObjectStore>,
paths: CheckpointPaths,
max_concurrent_uploads: usize,
) -> Self
pub fn new( store: Arc<dyn ObjectStore>, paths: CheckpointPaths, max_concurrent_uploads: usize, ) -> Self
Create a new checkpointer.
Sourcepub async fn save_partitions_concurrent(
&self,
id: &CheckpointId,
snapshots: Vec<(String, u32, bool, Bytes)>,
) -> Result<Vec<(String, PartitionSnapshotEntry)>, CheckpointerError>
pub async fn save_partitions_concurrent( &self, id: &CheckpointId, snapshots: Vec<(String, u32, bool, Bytes)>, ) -> Result<Vec<(String, PartitionSnapshotEntry)>, CheckpointerError>
Save multiple operator partition snapshots concurrently.
Returns a map of (operator, partition) -> PartitionSnapshotEntry.
§Errors
Returns CheckpointerError if any upload or join fails.
Trait Implementations§
Source§impl Checkpointer for ObjectStoreCheckpointer
impl Checkpointer for ObjectStoreCheckpointer
Source§fn save_manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
manifest: &'life1 CheckpointManifestV2,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save_manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
manifest: &'life1 CheckpointManifestV2,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Write a manifest to the checkpoint store.
Source§fn load_manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<CheckpointManifestV2, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<CheckpointManifestV2, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load a manifest by checkpoint ID.
Source§fn save_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
operator: &'life2 str,
partition: u32,
data: Bytes,
) -> Pin<Box<dyn Future<Output = Result<String, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn save_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
operator: &'life2 str,
partition: u32,
data: Bytes,
) -> Pin<Box<dyn Future<Output = Result<String, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Write a state snapshot for a single operator partition. Read more
Source§fn save_delta<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
operator: &'life2 str,
partition: u32,
data: Bytes,
) -> Pin<Box<dyn Future<Output = Result<String, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn save_delta<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
operator: &'life2 str,
partition: u32,
data: Bytes,
) -> Pin<Box<dyn Future<Output = Result<String, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Write an incremental delta for a single operator partition. Read more
Source§fn load_artifact<'life0, 'life1, 'async_trait>(
&'life0 self,
path_str: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Bytes, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_artifact<'life0, 'life1, 'async_trait>(
&'life0 self,
path_str: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Bytes, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load a snapshot or delta by path.
Source§fn update_latest<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_latest<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update the
_latest pointer to the given checkpoint.Source§fn read_latest<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<CheckpointId>, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_latest<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<CheckpointId>, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Read the
_latest pointer to find the most recent checkpoint.Source§fn list_checkpoints<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<CheckpointId>, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_checkpoints<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<CheckpointId>, CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List all checkpoint IDs (sorted chronologically, oldest first).
Source§fn delete_checkpoint<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_checkpoint<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CheckpointId,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a checkpoint and all its artifacts.
Auto Trait Implementations§
impl Freeze for ObjectStoreCheckpointer
impl !RefUnwindSafe for ObjectStoreCheckpointer
impl Send for ObjectStoreCheckpointer
impl Sync for ObjectStoreCheckpointer
impl Unpin for ObjectStoreCheckpointer
impl UnsafeUnpin for ObjectStoreCheckpointer
impl !UnwindSafe for ObjectStoreCheckpointer
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.