[ https://issues.apache.org/jira/browse/ZOOKEEPER-2031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14150886#comment-14150886 ]
Alexander Shraer commented on ZOOKEEPER-2031: --------------------------------------------- >From your last comments it seems that the answers to my questions change too, >right ? For example, currently, if I start Server 1 with an initial config saying that its client port is x but then when I add it to the quorum I'll say "add server 1...;y" then it will be added and its client port will be y. What will happen is that the "add server 1...;y" command will be executed, and when server 1 receives the new config and sees that its port is x and should be y it will change it. Just like during a reconfig, so initial addition and reconfig are the same in this sense. It seems that the tag is similar - no matter what tag you wrote in the joiner's initial config, you'll be able to add it with any tag. Is that correct ? If not, what in the code prevents you from doing that ? (btw, I'm not saying its wrong to do it this way, just trying to understand the behavior). Also for reconfig, since you're saying that you're able to change an existing server's tag dynamically, there should probably be a test for this. The check in FLE is not symmetric - it checks that the receiver's id has the same tag in both sender and receiver, but sender's id is not checked similarly. Is this intended ? Also, I'm not 100% sure but my intuition says that if you need a change in FLE you also need a change in leader-follower connection protocol, since FLE is just an optimization. For example checks like "leader is ahead of followers" are happening during connection in LearnerHandler. One more thing. Could it happen that you connect 2 servers with id 7 but different tags ? Then when you do reconfig both adopt the same tag (according to what was specified in reconfig). What prevents this ? > Support tagging a QuorumServer > ------------------------------ > > Key: ZOOKEEPER-2031 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2031 > Project: ZooKeeper > Issue Type: Improvement > Components: server > Reporter: some one > Assignee: some one > Fix For: 3.5.1, 3.6.0 > > Attachments: ZOOKEEPER-2031-Additional.patch, ZOOKEEPER-2031.patch > > > Currently ZooKeeper only allows using the server id which is an integer for > identifying servers. For my (unavoidable) use case, there may be concurrent > dynamic removes and adds of servers which may eventually have id collisions. > When this occurs, there is no good way to determine if the server (given an > id collision) that we want to remove is the right server. > To support my use case, I propose that we add a tag field to the server > string. > For my specific use case, this tag field will be used to store a uuid as a > string. > So for example: > server.1=127.0.0.1:1234:1236:participant;0.0.0.0:1237;743b9d23-85cb-45b1-8949-930fdabb21f0 -- This message was sent by Atlassian JIRA (v6.3.4#6332)