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

nkeywal commented on ZOOKEEPER-1381:
------------------------------------

I'm having a look at this. It's easy to add a server and client function to get 
the server version. However, when trying to use a newer client with an older 
server, the client hangs when it tries to use a function not known by the 
server (that's the case for multi for example). Is there a recommended 
solution/workaround? A time out is possible, but if it's too short it can 
retrieve wrong results (false positive), if it's too large it may be too slow 
when used on an old server...
                
> Add a method to get the zookeeper server version from the client
> ----------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1381
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1381
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: c client, documentation, java client, server
>    Affects Versions: 3.4.2
>         Environment: all
>            Reporter: nkeywal
>            Priority: Minor
>              Labels: newbie
>
> Zookeeper client API is designed to be server version agnostic as much as 
> possible, so we can have new clients with old servers (or the opposite). But 
> there is today no simple way for a client to know what's the server version. 
> This would be very useful in order to;
> - check the compatibility (ex: 'multi' implementation available since 3.4 
> while 3.4 clients API supports 3.3 servers as well)
> - have different implementation depending on the server functionalities
> A workaround (proposed by Mahadev Konar) is do "echo stat | nc hostname 
> clientport" and parse the output to get the version. The output is, for 
> example:
> -----------------------
> Zookeeper version: 3.4.2--1, built on 01/30/2012 17:43 GMT
> Clients:
>  /127.0.0.1:54951[0](queued=0,recved=1,sent=0)
> Latency min/avg/max: 0/0/0
> Received: 1
> Sent: 0
> Outstanding: 0
> Zxid: 0x500000001
> Mode: follower
> Node count: 7
> --------------------

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to