pub struct CheckpointManifest {Show 26 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>,
pub view_log: Option<NodeDataObject>,
pub view_logs: Vec<ViewLog>,
pub referenced_view_logs: Vec<ReferencedStateChunk>,
}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 state 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.
view_log: Option<NodeDataObject>The view-log object this node wrote for this checkpoint, at the node_data chunk
identity; None when no view appended rows.
view_logs: Vec<ViewLog>Canonically ordered append-only view logs retained at this cut.
referenced_view_logs: Vec<ReferencedStateChunk>Canonically ordered older view-log objects retained by view_logs.
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 v11 recovery contract.
Trait Implementations§
Source§impl Clone for CheckpointManifest
impl Clone for CheckpointManifest
Source§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].