pub struct CheckpointManifest {Show 23 fields
pub version: u32,
pub checkpoint_id: u64,
pub epoch: u64,
pub timestamp_ms: u64,
pub participant_id: u64,
pub source_offsets: HashMap<String, ConnectorCheckpoint>,
pub source_names: Vec<String>,
pub sink_names: Vec<String>,
pub pipeline_identity: PipelineIdentity,
pub deployment_id: String,
pub partitioning_abi_version: u16,
pub vnode_count: u16,
pub assignment_fence: Option<CheckpointAssignmentFence>,
pub reassignment_portable: bool,
pub owned_vnodes: Vec<u16>,
pub checkpoint_watermark: Option<i64>,
pub channel_progress: Vec<ChannelProgress>,
pub node_data: NodeDataObject,
pub state_frames: Vec<StateFrame>,
pub prepared_sinks: Vec<PreparedSinkDescriptor>,
pub sink_artifact_intents: Vec<PreparedSinkArtifactIntent>,
pub referenced_chunks: Vec<ReferencedStateChunk>,
pub subscription_output: Option<NodeSubscriptionManifest>,
}Expand description
A point-in-time snapshot of one participant’s pipeline state.
Fields§
§version: u32Exact manifest format version.
checkpoint_id: u64Unique, monotonically increasing checkpoint ID; must equal epoch.
epoch: u64Persisted protocol epoch; must equal checkpoint_id.
timestamp_ms: u64Creation time in milliseconds since the Unix epoch.
participant_id: u64Node owning this manifest and its current data object.
source_offsets: HashMap<String, ConnectorCheckpoint>Per-source connector offsets.
source_names: Vec<String>Canonically sorted registered source names.
sink_names: Vec<String>Canonically sorted registered sink names.
pipeline_identity: PipelineIdentityDeterministic logical topology and state ABI identity.
deployment_id: StringCreate-once checkpoint namespace incarnation.
partitioning_abi_version: u16Durable key encoding, hashing, and key-group mapping contract.
vnode_count: u16Virtual partition count.
assignment_fence: Option<CheckpointAssignmentFence>Exact cluster assignment generation and participant fence; local manifests use None.
reassignment_portable: boolWhether this cut can be restored under a different cluster vnode assignment.
Cluster manifests must carry an affirmative, capture-time proof. Local manifests cannot claim reassignment portability because they have no assignment-fenced recovery domain.
owned_vnodes: Vec<u16>Canonically sorted vnodes whose state inventory this participant supplies.
checkpoint_watermark: Option<i64>Derived checkpoint watermark retained with the exact cut.
channel_progress: Vec<ChannelProgress>Canonically ordered per-channel watermarks and idle/uninitialized states.
node_data: NodeDataObjectThe only data object written by this node for this checkpoint.
state_frames: Vec<StateFrame>Canonically ordered complete logical state inventory.
prepared_sinks: Vec<PreparedSinkDescriptor>Canonically ordered phase-one sink descriptor inventory.
sink_artifact_intents: Vec<PreparedSinkArtifactIntent>Canonically ordered recovery intents captured before sink epoch begin.
referenced_chunks: Vec<ReferencedStateChunk>Canonically ordered older objects retained by state_frames.
subscription_output: Option<NodeSubscriptionManifest>Participant-local subscription output ranges and immutable segment references.
Implementations§
Source§impl CheckpointManifest
impl CheckpointManifest
Sourcepub fn new(checkpoint_id: u64, epoch: u64) -> Self
pub fn new(checkpoint_id: u64, epoch: u64) -> Self
Create a prepared manifest with the common vnode topology.
Sourcepub fn new_with_key_group_count(
checkpoint_id: u64,
epoch: u64,
key_group_count: KeyGroupCount,
) -> Self
pub fn new_with_key_group_count( checkpoint_id: u64, epoch: u64, key_group_count: KeyGroupCount, ) -> Self
Create a prepared manifest with an explicit vnode topology.
Sourcepub fn bind_participant(&mut self, participant_id: u64)
pub fn bind_participant(&mut self, participant_id: u64)
Bind the manifest and current data-object identity to one participant.
Sourcepub fn validate(
&self,
expected_key_group_count: KeyGroupCount,
) -> Vec<ManifestValidationError>
pub fn validate( &self, expected_key_group_count: KeyGroupCount, ) -> Vec<ManifestValidationError>
Validate the exact v10 recovery contract.
Trait Implementations§
Source§impl Clone for CheckpointManifest
impl Clone for CheckpointManifest
Source§fn clone(&self) -> CheckpointManifest
fn clone(&self) -> CheckpointManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CheckpointManifest
impl Debug for CheckpointManifest
Source§impl<'de> Deserialize<'de> for CheckpointManifest
impl<'de> Deserialize<'de> for CheckpointManifest
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>,
Source§impl PartialEq for CheckpointManifest
impl PartialEq for CheckpointManifest
Source§impl Serialize for CheckpointManifest
impl Serialize for CheckpointManifest
impl StructuralPartialEq for CheckpointManifest
Auto Trait Implementations§
impl Freeze for CheckpointManifest
impl RefUnwindSafe for CheckpointManifest
impl Send for CheckpointManifest
impl Sync for CheckpointManifest
impl Unpin for CheckpointManifest
impl UnsafeUnpin for CheckpointManifest
impl UnwindSafe for CheckpointManifest
Blanket Implementations§
impl<T> Allocation for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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> ⓘ
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].