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

Patrick Hunt commented on ZOOKEEPER-1381:
-----------------------------------------

@nkeywal Having a separate jira sounds reasonable to me. Keep in mind that this 
method itself (getting the server version) will have the same problem. ;-)  
(say it's introduced in 3.5, then you'll see the same issue when running a 3.5+ 
client against an older server).

Also keep in mind that we don't provide this getServerVersion method for a 
reason - primarily because writing runtime code such as you are suggesting is 
more likely to have issues than if you code your client against an explicit 
version of the server. (and upgrade with these issues in mind).

Furthermore you might be running in a mixed ensemble - where some servers 
support particular features and some don't. Just because the follower you are 
connected to is a particular version doesn't mean the leader (or other 
followers) are the same version. That will complicate things.

I'd advise you not to go this route.
                
> 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