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

Alexander Shraer updated ZOOKEEPER-1633:
----------------------------------------

    Description: Currently the first message a server sends to another server 
includes just one field - the server's id (long). This is in 
QuorumCnxManager.java. This makes changes to the information passed during this 
initial connection very difficult. This patch will change the first field of 
the message to be a protocol version (a negative number that can't be a server 
id). The second field will be the server id. The third field is number of bytes 
in the remainder of the message. A 3.4 server will read the first field as 
before, but if this is a negative number it will read the second field to find 
the server id, and then remove the remainder of the message from the stream. 
This will not affect 3.4 since 3.4 and earlier servers send just the server id 
(so the code in the patch will not run unless there is a server > 3.4 trying to 
connect). This will, however, provide the necessary flexibility for future 
releases as well as an upgrade path from 3.4  (was: Currently the first message 
a server sends to another server is just its id (long). This is in 
QuorumCnxManager.java. This makes changes to the information passed during this 
initial connection very difficult. This patch will change the first message to 
be a protocol number (e.g., a negative number that can't be a server id). The 
second message will be the server id. The third message is number of bytes in 
the remainder of the message. A 3.4 server will read the first long as before, 
but if this is a negative number it will read the second long to find the 
server id, and then remove the remainder of the message from the stream. This 
will not affect 3.4 since the information sent in 3.4 is always a server id. It 
will provide the necessary flexibility for future releases as well as an 
upgrade path from 3.4)
    
> Introduce a protocol version to connection initiation message
> -------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1633
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1633
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>            Reporter: Alexander Shraer
>            Assignee: Alexander Shraer
>             Fix For: 3.4.6
>
>         Attachments: ZOOKEEPER-1633.patch
>
>
> Currently the first message a server sends to another server includes just 
> one field - the server's id (long). This is in QuorumCnxManager.java. This 
> makes changes to the information passed during this initial connection very 
> difficult. This patch will change the first field of the message to be a 
> protocol version (a negative number that can't be a server id). The second 
> field will be the server id. The third field is number of bytes in the 
> remainder of the message. A 3.4 server will read the first field as before, 
> but if this is a negative number it will read the second field to find the 
> server id, and then remove the remainder of the message from the stream. This 
> will not affect 3.4 since 3.4 and earlier servers send just the server id (so 
> the code in the patch will not run unless there is a server > 3.4 trying to 
> connect). This will, however, provide the necessary flexibility for future 
> releases as well as an upgrade path from 3.4

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to