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 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 error::ClusterError;
pub use error::Result;
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 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 rebalance::RebalancePlan;
pub use rebalance::compute_plan;
pub use rebalance::plan_to_requests;
pub use routing::RoutingTable;
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 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::Incarnation;
pub use swim::Member;
pub use swim::MemberState;
pub use swim::MembershipList;
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.
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.
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.
distributed_document
distributed_graph
distributed_join
Distributed join execution: broadcast and shuffle joins across cluster nodes.
distributed_spatial
distributed_timeseries
distributed_vector
error
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.
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.
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.
routing
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.