Skip to main content

Module control

Module control 

Source
Expand description

Control plane: leader election, assignment snapshots, barrier coordination. Cluster control plane: leader election, assignment snapshots, and barrier coordination.

Re-exports§

pub use crate::checkpoint::CheckpointAssignmentAdoption;
pub use crate::checkpoint::CheckpointAssignmentFence;
pub use crate::checkpoint::CheckpointParticipant;
pub use crate::checkpoint::LeaderProof;
pub use crate::checkpoint::LeaderProofOwner;
pub use barrier::BarrierAck;
pub use barrier::BarrierAnnouncement;
pub use barrier::BarrierCoordinator;
pub use barrier::ClusterKv;
pub use barrier::InMemoryKv;
pub use barrier::Phase;
pub use barrier::QuorumOutcome;
pub use barrier::ACK_KEY;
pub use barrier::ANNOUNCEMENT_KEY;
pub use controller::CheckpointPrepareObservation;
pub use controller::ClusterController;
pub use controller::RecoverPhase;
pub use controller::RecoveryAdmissionSnapshot;
pub use controller::RecoveryAnnouncement;
pub use controller::RecoveryControlError;
pub use controller::RecoveryFault;
pub use controller::RecoveryFaultReportOutcome;
pub use controller::RecoveryFaultRequest;
pub use controller::RecoveryRound;
pub use controller::RecoveryRoundId;
pub use controller::RecoveryStoppedReport;
pub use controller::ReleaseCommitStatus;
pub use crate::checkpoint_decision::CheckpointDecisionStore;
pub use crate::checkpoint_decision::DecisionError;
pub use catalog_manifest::CatalogManifest;
pub use catalog_manifest::CatalogManifestEntry;
pub use catalog_manifest::CatalogManifestError;
pub use catalog_manifest::CatalogManifestRef;
pub use catalog_manifest::CatalogManifestStore;
pub use catalog_manifest::CatalogObjectKind;
pub use catalog_manifest::CatalogSealOutcome;
pub use leader::leader_of;
pub use leader_lease::lease_grants_leadership;
pub use leader_lease::lease_grants_proof;
pub use leader_lease::AssignmentDrainDecision;
pub use leader_lease::AssignmentDrainVerdict;
pub use leader_lease::AssignmentRecoveryDecision;
pub use leader_lease::ClusterCheckpointAuthorityError;
pub use leader_lease::ClusterOutcomeInventory;
pub use leader_lease::ClusterOutcomeRetentionBoundary;
pub use leader_lease::LeaderCandidacy;
pub use leader_lease::LeaderLease;
pub use leader_lease::LeaderLeaseConfig;
pub use leader_lease::LeaderLeaseManager;
pub use leader_lease::LeaderLeaseObservation;
pub use leader_lease::LeaderLeaseOwner;
pub use leader_lease::LeaderLeaseStore;
pub use leader_lease::LeaseError;
pub use leader_lease::LeaseOutcome;
pub use leader_lease::RecordAssignmentDrainDecisionResult;
pub use leader_lease::RecordAssignmentRecoveryDecisionResult;
pub use process_lease::ProcessLease;
pub use process_lease::ProcessLeaseAuthority;
pub use process_lease::ProcessLeaseConfig;
pub use process_lease::ProcessLeaseError;
pub use process_lease::ProcessLeaseFence;
pub use process_lease::ProcessLeaseManager;
pub use process_lease::ProcessLeaseObservation;
pub use process_lease::ProcessLeaseOutcome;
pub use process_lease::ProcessLeaseStore;
pub use snapshot::AssignmentSnapshot;
pub use snapshot::AssignmentSnapshotRef;
pub use snapshot::AssignmentSnapshotStore;
pub use snapshot::RotateOutcome;
pub use snapshot::SnapshotError;
pub use chitchat_kv::ChitchatKv;
pub use tls::claim_cluster_plaintext;
pub use tls::set_cluster_tls;
pub use tls::ClusterTls;

Modules§

barrier
Cross-instance barrier protocol. Direct gRPC leader-to-follower calls under cluster, falling back to gossip-KV announce/ack/poll.
catalog_manifest
Catalog inventory sealed in the append-only leader authority.
chitchat_kv
Chitchat-backed ClusterKv. Reads filter by live_nodes() so suspected peers don’t count toward quorum.
controller
Facade over ClusterKv + BarrierCoordinator + membership watch. None on CheckpointCoordinator means single-instance mode.
leader
Weak leader election: lowest-ID live instance wins. Split-brain is tolerated because epoch=N/_COMMIT is CAS-guarded.
leader_lease
Durable, append-only leader fencing.
process_lease
Durable ownership of one stable cluster node identity.
snapshot
Durable vnode→instance assignment snapshots. One object per version at control/assignment-snapshots/v{N:020}.json. Chitchat carries the ephemeral copy; these files survive full-cluster restart.
tls
Process-wide transport mode for the cluster control plane (barrier and shuffle), resolved once at startup with at most one TLS identity.

Structs§

LeaseDeadline
Process-local monotonic deadline for a renewable durable lease.
NamespaceProofError
Failure to establish one checkpoint/state namespace across the startup roster.
VerifiedClusterNamespaces
Exact object-store handles admitted by a successful cluster namespace proof.

Constants§

MAX_SHARED_NAMESPACE_PROOF_TIMEOUT
Maximum time allowed for shared checkpoint/state namespace verification.

Functions§

prove_shared_object_store_namespaces
Prove that the local process can read every startup participant’s retained checkpoint and state sentinel through its candidate object-store handles.