Module cluster

Source
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§

ClusterState
Node
Node represents a cluster node along with its data and connections

Enums§

KnownNode
Describes a database server known on Session startup.
NodeAddr
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 on Untranslatable variant.

Type Aliases§

NodeRef
A way that Nodes are often passed and accessed in the driver’s code.