[ 
https://issues.apache.org/jira/browse/CASSANDRA-14335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16463159#comment-16463159
 ] 

Dinesh Joshi commented on CASSANDRA-14335:
------------------------------------------

[~jasobrown] I have updated my branch with an implementation that will be 
threadsafe as well as performant. As part of this change, I am introducing 
addition flags for {{nodetool clientstats}} command. We can use {{nodetool 
clientstats --by-protocol}} to give you the list last 100 clients that the C* 
process has seen for each protocol. I am deduping by IP address so you should 
see unique IPs. You can clear this list by running {{nodetool clientstats 
--clear-history}} to clear the history of all clients.

For posterity - [~jasobrown] and I had a conversation about the usefulness of 
having this information. Although the existing {{nodetool clientstats --all}} 
is sufficient to tell you what clients are _currently_ connected to the C* 
process including the protocol version, this information is ephemeral. There 
are many situations where an operator may miss intermittently connecting 
clients for example - batch processes. Additionally, we can script around by 
periodically invoking {{nodetool clientstats --all}} from external scripts but 
that is sub-optimal for a variety of reasons - you can still miss intermittent 
clients, you unnecessarily make calls over JMX. Storing this historical 
information in the C* process means you wont miss intermittently connecting 
clients and would be overall more efficient that going over JMX all the time.

> C* nodetool should report the lowest of the highest CQL protocol version 
> supported by all clients connecting to it
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14335
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14335
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Dinesh Joshi
>            Assignee: Dinesh Joshi
>            Priority: Major
>
> While upgrading C*, it makes it hard to tell whether any client will be 
> affected if C* is upgraded. C* should internally store the highest protocol 
> version of all clients connecting to it. The lowest supported version will 
> help determining if any client will be adversely affected by the upgrade.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to