[
https://issues.apache.org/jira/browse/CASSANDRA-17577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17541656#comment-17541656
]
Brad Schoening commented on CASSANDRA-17577:
--------------------------------------------
Consistent terminology is quite important to get right. Apache Cassandra
documentation defines 'Endpoint' here [Dynamo | Apache Cassandra
Documentation|https://cassandra.apache.org/doc/latest/cassandra/architecture/dynamo.html]
as "{*}Endpoint{*}: A single physical IP and port on the network. Which is
the usual definition used in networking to mean a host and port on a network.
I think it's a misnomer that nodetool used 'endpoint' to mean replica.
Continuing from the Apache Cassandra doc above "Replicas are always chosen such
that they are distinct physical nodes which is achieved by skipping virtual
nodes if needed."
> Add cqlsh SHOW REPLICAS by token command
> ----------------------------------------
>
> Key: CASSANDRA-17577
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17577
> Project: Cassandra
> Issue Type: New Feature
> Components: CQL/Interpreter
> Reporter: Brad Schoening
> Assignee: Brad Schoening
> Priority: Normal
> Fix For: 4.x
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> It is often useful to know when a query fails or a query is slow which nodes
> the query was routed too. For clusters with vnodes, determining this is not
> simple and requires an admin tool like 'nodetool getendpoints;.
> But, the Cassandra driver has cluster metadata which identifies which nodes
> are the replicas for a given token range. It should be straightforward to
> support this in CQLSH.
> Example with python driver:
> {quote}from cassandra.cluster import Cluster
> from cassandra.auth import PlainTextAuthProvider
> import cassandra.metadata
> from cassandra.metadata import Murmur3Token
>
> auth_provider = PlainTextAuthProvider(username='cassandra',
> password='cassandra')
> cluster = Cluster(['127.0.0.1'], auth_provider=auth_provider)
> session = cluster.connect('tests')
> cluster.metadata.token_map.get_replicas('tests',Murmur3Token(100))
> {color:#4c9aff}>>>
> cluster.metadata.token_map.get_replicas('tests',Murmur3Token(100)){color}
> {color:#4c9aff}[<Host: 127.0.0.1:9042 datacenter1>]{color}
>
> {quote}
> Users shouldn't require access to an admin tool like nodetool to access the
> cluster metadata. This is especially true for Cassandra-as-a-service
> offerings like AWS keyspaces or Instaclustr's managed service.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]