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

Alexander Shraer commented on ZOOKEEPER-1987:
---------------------------------------------

Configurations are ordered using their version numbers. This is how we can 
compare two configs and determine which one is older. Initially when you start 
up a cluster or a new server is joining its file doesn't have to include a 
version. In fact the user should NEVER specify a version. When a leader comes 
up, if the config wasn't set yet it sets it to its new zxid, and all config 
files are updated. If a new config is proposed, its version is the reconfig op 
zxid. 

Storing the version in a separate file creates a problem of keeping this file 
in sync with the dynamic config file. How would one update them atomically? I 
like your idea of making the version part of the filename. This means however 
that we'd need to update the static config file every time too, as it has a 
link to the dynamic file. But the good thing is that we may not need the bak 
files - we can just leave the old dynamic config files. 

I'm not sure whether this should be done for 3.5.0 or perhaps later.





> unable to restart 3 node cluster
> --------------------------------
>
>                 Key: ZOOKEEPER-1987
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1987
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: tests
>    Affects Versions: 3.5.0
>            Reporter: Patrick Hunt
>            Assignee: Alexander Shraer
>            Priority: Blocker
>             Fix For: 3.5.0
>
>         Attachments: ZOOKEEPER-1987-ver1.patch, ZOOKEEPER-1987-ver2.patch, 
> ZOOKEEPER-1987-ver3.patch, ZOOKEEPER-1987.patch, f1.jstack, l3.jstack, 
> test3.tar.gz
>
>
> I tried a fairly simple test, start a three node cluster, bring it down, then 
> restart it. On restart the servers elect the leader and send updates, however 
> the negotiation never completes - the client ports are never bound for 
> example.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to