[
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]