Skip to main content

nodedb_cluster/
lib.rs

1pub mod bootstrap;
2pub mod bootstrap_listener;
3pub mod catalog;
4pub mod circuit_breaker;
5pub mod closed_timestamp;
6pub mod cluster_info;
7pub mod conf_change;
8pub mod cross_shard_txn;
9pub mod decommission;
10pub mod distributed_document;
11pub mod distributed_graph;
12pub mod distributed_join;
13pub mod distributed_spatial;
14pub mod distributed_timeseries;
15pub mod distributed_vector;
16pub mod error;
17pub mod follower_read;
18pub mod forward;
19pub mod ghost;
20pub mod ghost_sweeper;
21pub mod health;
22pub mod lifecycle;
23pub mod lifecycle_state;
24pub mod loop_metrics;
25pub mod metadata_group;
26pub mod migration;
27pub mod migration_executor;
28pub mod multi_raft;
29pub mod quic_transport;
30pub mod raft_loop;
31pub mod raft_storage;
32pub mod rdma_transport;
33pub mod reachability;
34pub mod readiness;
35pub mod rebalance;
36pub mod rebalance_scheduler;
37pub mod rebalancer;
38pub mod routing;
39pub mod routing_liveness;
40pub mod rpc_codec;
41pub mod shard_split;
42pub mod swim;
43pub mod topology;
44pub mod transport;
45pub mod vshard_handler;
46pub mod wire;
47
48pub use bootstrap::{ClusterConfig, ClusterState, JoinRetryPolicy, start_cluster};
49pub use catalog::ClusterCatalog;
50pub use circuit_breaker::BreakerSnapshot;
51pub use closed_timestamp::ClosedTimestampTracker;
52pub use cluster_info::{
53    ClusterInfoSnapshot, ClusterObserver, GroupSnapshot, GroupStatusProvider, PeerSnapshot,
54};
55pub use conf_change::{ConfChange, ConfChangeType};
56pub use decommission::{
57    DecommissionCoordinator, DecommissionObserver, DecommissionPlan, DecommissionRunResult,
58    DecommissionSafetyError, MetadataProposer, check_can_decommission, plan_full_decommission,
59};
60pub use error::{ClusterError, Result};
61pub use follower_read::{FollowerReadGate, ReadLevel};
62pub use forward::{NoopPlanExecutor, PlanExecutor};
63pub use ghost::{GhostStub, GhostTable};
64pub use health::{HealthConfig, HealthMonitor};
65pub use lifecycle_state::{ClusterLifecycleState, ClusterLifecycleTracker};
66pub use loop_metrics::{LoopMetrics, LoopMetricsRegistry};
67pub use migration::{MigrationPhase, MigrationState};
68pub use migration_executor::{
69    MigrationExecutor, MigrationRequest, MigrationResult, MigrationSnapshot, MigrationTracker,
70};
71pub use multi_raft::{GroupStatus, MultiRaft};
72pub use raft_loop::{CommitApplier, RaftLoop, VShardEnvelopeHandler};
73pub use reachability::{
74    NoopProber, ReachabilityDriver, ReachabilityDriverConfig, ReachabilityProber, TransportProber,
75};
76pub use rebalance::{RebalancePlan, compute_plan, plan_to_requests};
77pub use rebalancer::{
78    AlwaysReadyGate, ElectionGate, LoadMetrics, LoadMetricsProvider, LoadWeights,
79    MigrationDispatcher, RebalancerKickHook, RebalancerLoop, RebalancerLoopConfig,
80    RebalancerPlanConfig, compute_load_based_plan, normalized_score,
81};
82pub use routing::RoutingTable;
83pub use routing_liveness::{NodeIdResolver, RoutingLivenessHook};
84pub use rpc_codec::{MacKey, RaftRpc};
85pub use topology::{ClusterTopology, NodeInfo, NodeState};
86pub use transport::{
87    NexarTransport, RaftRpcHandler, TlsCredentials, TransportCredentials, TransportPeerSnapshot,
88    ca_fingerprint, ca_fingerprint_hex, generate_node_credentials,
89    generate_node_credentials_multi_san, insecure_transport_count, issue_leaf_for_sans,
90    load_crls_from_pem, make_raft_client_config_mtls, make_raft_server_config_mtls,
91};
92pub use wire::VShardEnvelope;
93
94pub use cross_shard_txn::{
95    CrossShardTransaction, ForwardEntry, GsiForwardEntry, TransactionCoordinator,
96};
97pub use metadata_group::{
98    CacheApplier, DescriptorHeader, DescriptorId, DescriptorKind, DescriptorLease, DescriptorState,
99    METADATA_GROUP_ID, MetadataApplier, MetadataCache, MetadataEntry, NoopMetadataApplier,
100    RoutingChange, TopologyChange, decode_entry, encode_entry,
101};
102pub use quic_transport::{QuicTransport, QuicTransportConfig};
103
104pub use distributed_join::{BroadcastJoinRequest, JoinStrategy, ShufflePartition, select_strategy};
105pub use lifecycle::{
106    DecommissionResult, handle_learner_promotion, handle_node_join, plan_decommission,
107};
108pub use rdma_transport::{RdmaConfig, RdmaTransport};
109pub use rebalance_scheduler::{NodeMetrics, RebalanceScheduler, RebalanceTrigger, SchedulerConfig};
110pub use shard_split::{SplitPlan, SplitStrategy, plan_graph_split, plan_vector_split};
111pub use swim::bootstrap::spawn_with_subscribers as spawn_swim_with_subscribers;
112pub use swim::{
113    Incarnation, Member, MemberState, MembershipList, MembershipSubscriber, SwimConfig, SwimError,
114    SwimHandle, UdpTransport, spawn as spawn_swim,
115};