Node (sync)¶
- class aerospike_sdk.sync.node.Node[source]¶
Bases:
NodeBaseOne server node of a connected cluster (synchronous).
Obtained from
Cluster.nodesorCluster.get_node. Properties andaliases()read state the client already holds;info()sends a command to this node specifically, which a cluster-wide info call cannot do.Example:
for node in cluster.nodes(): build = node.info("build")["build"] print(f"{node.name} {node.address}: {build}")
See also
aerospike_sdk.aio.node.Node: The async counterpart.InfoCommands: Parsed cluster-wide info.- info(command)[source]¶
Run a raw info command on this node only.
Example:
node = cluster.get_node("BB9D4EB574A8DA6") roster = node.info("roster:namespace=test") print(roster["roster:namespace=test"])
- Parameters:
command (
str) – The info command, e.g."build"or"namespace/test".- Return type:
- Returns:
The response keyed by command. A command the server rejects comes back as an
ERROR:...value, not as an exception.- Raises:
AerospikeError – If the node cannot be reached.
See also
InfoCommands.info_on_all_nodes: The same command on every node at once.
- __init__(pnc_node)¶
Wrap a PNC node; obtained from
Cluster.nodesorCluster.get_node.
- property address: str¶
The
host:portaddress the client connects to for this node.Example:
print(f"{node.name} at {node.address}") # BB9D4EB574A8DA6 at 10.0.0.12:3000
- Returns:
The address as
"host:port".
See also
host: The same address as a(host, port)tuple.
- aliases()¶
Every
(host, port)the client has seen this node answer on.A node reached through several addresses (seed hostname, peer-reported IP, alternate services address) is one node with several aliases.
Example:
for hostname, port in node.aliases(): print(f"{node.name} reachable at {hostname}:{port}")
See also
host: The address the client currently connects to.
- property failures: int¶
Failures the client has counted for this node since its last successful refresh.
Example:
flaky = [node.name for node in cluster.nodes() if node.failures > 0]
- Returns:
The failure count;
0for a healthy node, and reset to0by the next successful cluster tend.
See also
is_active: Whether the node is still in the cluster.
- property host: Tuple[str, int]¶
The address the client connects to, as a
(host, port)tuple.Example:
hostname, port = node.host assert port != 4333, "still connected over TLS"
- Returns:
(hostname, port).
See also
address: The same address as a string.
- property is_active: bool¶
Whether the client still considers this node part of the cluster.
A node object outlives its membership: one fetched before the node left keeps reporting its last-known state here as
False.Example:
inactive = [node.name for node in cluster.nodes() if not node.is_active]
- Returns:
Truewhile the node is in the client’s current node list.
See also
Cluster.nodes(): The current, active node list.
- property name: str¶
The server-assigned node ID, e.g.
"BB9D4EB574A8DA6".This is the key
Cluster.get_node()looks up, and the key the*_per_nodeinfo helpers return results under.Example:
names = [node.name for node in cluster.nodes()]
- Returns:
The node’s name.
See also
address: Where the client reaches this node.
- property partition_generation: int¶
The node’s partition-map generation, bumped when its partition ownership changes.
Example:
generations = {node.name: node.partition_generation for node in cluster.nodes()}
- Returns:
The generation the client last read from the node.
See also
rebalance_generation: The generation for rebalance events.
- property rebalance_generation: int¶
The node’s rebalance generation, bumped each time the cluster rebalances.
Example:
generations = {node.rebalance_generation for node in cluster.nodes()} settled = len(generations) == 1
- Returns:
The generation the client last read from the node.
See also
partition_generation: The generation for partition-map changes.
- property version: Version¶
The server version this node runs.
Per-node, unlike
Cluster.server_version(), which reports the cluster minimum. Comparing them across nodes shows whether a rolling upgrade has finished.Example:
versions = {node.name: str(node.version) for node in cluster.nodes()} if len(set(versions.values())) > 1: print(f"mixed-version cluster: {versions}")
- Returns:
The node’s
Version.
See also
Cluster.server_version(): The minimum across all nodes.