Expand description
This module holds entities that represent the cluster as a whole, nodes in the cluster (together with a pool of connections), the cluster’s state, and logic for ruling out specific nodes.
This includes:
- node’s representation (Node),
- metadata representation, fetching and management, including:
- topology metadata,
- schema metadata,
- ClusterState, which is a snapshot of the cluster’s state.
- ClusterState is replaced atomically upon a metadata refresh, preventing any issues arising from mutability, including races.
Modules§
- metadata
- This module holds entities that represent the cluster metadata, which includes:
Structs§
- Cluster
State - Node
- Node represents a cluster node along with its data and connections
Enums§
- Known
Node - Describes a database server known on
Session
startup. - Node
Addr - This enum is introduced to support address translation only upon opening a connection,
as well as to cope with a bug present in older Cassandra and Scylla releases.
The bug involves misconfiguration of rpc_address and/or broadcast_rpc_address
in system.local to 0.0.0.0. Mitigation involves replacing the faulty address
with connection’s address, but then that address must not be subject to
AddressTranslator
, so we carry that information using this enum. Address translation is never performed onUntranslatable
variant.
Type Aliases§
- NodeRef
- A way that Nodes are often passed and accessed in the driver’s code.