Skip to main content

Crate nodedb_cluster

Crate nodedb_cluster 

Source

Re-exports§

pub use bootstrap::ClusterConfig;
pub use bootstrap::ClusterState;
pub use bootstrap::JoinRetryPolicy;
pub use bootstrap::start_cluster;
pub use catalog::ClusterCatalog;
pub use circuit_breaker::BreakerSnapshot;
pub use closed_timestamp::ClosedTimestampTracker;
pub use cluster_info::ClusterInfoSnapshot;
pub use cluster_info::ClusterObserver;
pub use cluster_info::GroupSnapshot;
pub use cluster_info::GroupStatusProvider;
pub use cluster_info::PeerSnapshot;
pub use conf_change::ConfChange;
pub use conf_change::ConfChangeType;
pub use decommission::DecommissionCoordinator;
pub use decommission::DecommissionObserver;
pub use decommission::DecommissionPlan;
pub use decommission::DecommissionRunResult;
pub use decommission::DecommissionSafetyError;
pub use decommission::MetadataProposer;
pub use decommission::check_can_decommission;
pub use decommission::plan_full_decommission;
pub use error::ClusterError;
pub use error::Result;
pub use follower_read::FollowerReadGate;
pub use follower_read::ReadLevel;
pub use forward::NoopPlanExecutor;
pub use forward::PlanExecutor;
pub use ghost::GhostStub;
pub use ghost::GhostTable;
pub use health::HealthConfig;
pub use health::HealthMonitor;
pub use lifecycle_state::ClusterLifecycleState;
pub use lifecycle_state::ClusterLifecycleTracker;
pub use loop_metrics::LoopMetrics;
pub use loop_metrics::LoopMetricsRegistry;
pub use migration::MigrationPhase;
pub use migration::MigrationState;
pub use migration_executor::MigrationExecutor;
pub use migration_executor::MigrationRequest;
pub use migration_executor::MigrationResult;
pub use migration_executor::MigrationSnapshot;
pub use migration_executor::MigrationTracker;
pub use multi_raft::GroupStatus;
pub use multi_raft::MultiRaft;
pub use raft_loop::CommitApplier;
pub use raft_loop::RaftLoop;
pub use raft_loop::VShardEnvelopeHandler;
pub use reachability::NoopProber;
pub use reachability::ReachabilityDriver;
pub use reachability::ReachabilityDriverConfig;
pub use reachability::ReachabilityProber;
pub use reachability::TransportProber;
pub use rebalance::RebalancePlan;
pub use rebalance::compute_plan;
pub use rebalance::plan_to_requests;
pub use rebalancer::AlwaysReadyGate;
pub use rebalancer::ElectionGate;
pub use rebalancer::LoadMetrics;
pub use rebalancer::LoadMetricsProvider;
pub use rebalancer::LoadWeights;
pub use rebalancer::MigrationDispatcher;
pub use rebalancer::RebalancerKickHook;
pub use rebalancer::RebalancerLoop;
pub use rebalancer::RebalancerLoopConfig;
pub use rebalancer::RebalancerPlanConfig;
pub use rebalancer::compute_load_based_plan;
pub use rebalancer::normalized_score;
pub use routing::RoutingTable;
pub use routing_liveness::NodeIdResolver;
pub use routing_liveness::RoutingLivenessHook;
pub use rpc_codec::MacKey;
pub use rpc_codec::RaftRpc;
pub use topology::ClusterTopology;
pub use topology::NodeInfo;
pub use topology::NodeState;
pub use transport::NexarTransport;
pub use transport::RaftRpcHandler;
pub use transport::TlsCredentials;
pub use transport::TransportCredentials;
pub use transport::TransportPeerSnapshot;
pub use transport::ca_fingerprint;
pub use transport::ca_fingerprint_hex;
pub use transport::generate_node_credentials;
pub use transport::generate_node_credentials_multi_san;
pub use transport::insecure_transport_count;
pub use transport::issue_leaf_for_sans;
pub use transport::load_crls_from_pem;
pub use transport::make_raft_client_config_mtls;
pub use transport::make_raft_server_config_mtls;
pub use wire::VShardEnvelope;
pub use cross_shard_txn::CrossShardTransaction;
pub use cross_shard_txn::ForwardEntry;
pub use cross_shard_txn::GsiForwardEntry;
pub use cross_shard_txn::TransactionCoordinator;
pub use metadata_group::CacheApplier;
pub use metadata_group::DescriptorHeader;
pub use metadata_group::DescriptorId;
pub use metadata_group::DescriptorKind;
pub use metadata_group::DescriptorLease;
pub use metadata_group::DescriptorState;
pub use metadata_group::METADATA_GROUP_ID;
pub use metadata_group::MetadataApplier;
pub use metadata_group::MetadataCache;
pub use metadata_group::MetadataEntry;
pub use metadata_group::NoopMetadataApplier;
pub use metadata_group::RoutingChange;
pub use metadata_group::TopologyChange;
pub use metadata_group::decode_entry;
pub use metadata_group::encode_entry;
pub use quic_transport::QuicTransport;
pub use quic_transport::QuicTransportConfig;
pub use distributed_join::BroadcastJoinRequest;
pub use distributed_join::JoinStrategy;
pub use distributed_join::ShufflePartition;
pub use distributed_join::select_strategy;
pub use lifecycle::DecommissionResult;
pub use lifecycle::handle_learner_promotion;
pub use lifecycle::handle_node_join;
pub use lifecycle::plan_decommission;
pub use rdma_transport::RdmaConfig;
pub use rdma_transport::RdmaTransport;
pub use rebalance_scheduler::NodeMetrics;
pub use rebalance_scheduler::RebalanceScheduler;
pub use rebalance_scheduler::RebalanceTrigger;
pub use rebalance_scheduler::SchedulerConfig;
pub use shard_split::SplitPlan;
pub use shard_split::SplitStrategy;
pub use shard_split::plan_graph_split;
pub use shard_split::plan_vector_split;
pub use swim::bootstrap::spawn_with_subscribers as spawn_swim_with_subscribers;
pub use swim::Incarnation;
pub use swim::Member;
pub use swim::MemberState;
pub use swim::MembershipList;
pub use swim::MembershipSubscriber;
pub use swim::SwimConfig;
pub use swim::SwimError;
pub use swim::SwimHandle;
pub use swim::UdpTransport;
pub use swim::spawn as spawn_swim;

Modules§

bootstrap
Cluster bootstrap and join protocol.
bootstrap_listener
Token-authenticated bootstrap RPC for cred delivery (L.4).
catalog
Cluster catalog — persistent storage for topology, routing, cluster metadata, and ghost stub refcounts.
circuit_breaker
Per-peer circuit breaker and retry policy for RPC resilience.
closed_timestamp
Per-group closed-timestamp tracker.
cluster_info
Observability view of the cluster — snapshot types, trait for querying per-group Raft status, and the ClusterObserver handle bundled into SharedState for HTTP / metrics readers.
conf_change
Raft configuration change types.
cross_shard_txn
Cross-shard write atomicity via Calvin-style deterministic transactions.
decommission
Decommission flow — graceful removal of a node from the cluster.
distributed_document
distributed_graph
distributed_join
Distributed join execution: broadcast and shuffle joins across cluster nodes.
distributed_spatial
distributed_timeseries
distributed_vector
error
follower_read
Follower-read decision gate.
forward
Physical-plan execution trait for leader-based request routing.
ghost
ghost_sweeper
Periodic ghost edge anti-entropy sweeper.
health
Cluster health monitoring — periodic pings, failure detection, topology broadcast.
lifecycle
Node lifecycle management: join, leave, decommission.
lifecycle_state
Cluster lifecycle state tracking for observability.
loop_metrics
Standardized control-loop metrics.
metadata_group
Replicated metadata Raft group (group 0).
migration
migration_executor
vShard migration executor — drives the 3-phase migration state machine.
multi_raft
Multi-Raft coordinator: owns every Raft group hosted on this node, routes inbound RPCs, and surfaces aggregated Ready output to the tick loop.
quic_transport
QUIC/TCP fallback transport for shard migration and cross-node communication.
raft_loop
Raft event loop — drives MultiRaft ticks and dispatches messages over the transport.
raft_storage
Persistent Raft log storage backed by redb.
rdma_transport
RDMA transport for high-performance shard migration base copy.
reachability
Reachability driver — the active half of circuit-breaker recovery.
readiness
systemd readiness signalling for Type=notify units.
rebalance
Rebalancing planner — computes and executes vShard redistribution.
rebalance_scheduler
Rebalance scheduler: automatic trigger-based shard redistribution.
rebalancer
Load-based automatic rebalancer.
routing
routing_liveness
Liveness-driven routing invalidation.
rpc_codec
Raft RPC binary codec — split into logical sub-modules.
shard_split
Shard splitting: vector-aware and graph-aware partitioning.
swim
SWIM — Scalable Weakly-consistent Infection-style Membership.
topology
Cluster topology — tracks which nodes exist and their state.
transport
vshard_handler
Shard-side handler for incoming VShardEnvelope messages.
wire
Transport-agnostic vShard envelope.