[ 
https://issues.apache.org/jira/browse/CASSANDRA-17577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brad Schoening updated CASSANDRA-17577:
---------------------------------------
    Description: 
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.

  was:
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.


> Add CQLSH support for listing replicas by partition key
> -------------------------------------------------------
>
>                 Key: CASSANDRA-17577
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17577
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Brad Schoening
>            Priority: Normal
>
> 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]

Reply via email to