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

some one commented on ZOOKEEPER-2031:
-------------------------------------

My last comment was wrong, sorry. I was observing the reconfig add failure only 
because I was using only the QuorumServer string instead of "server.id=" + 
QS.toString().
So I do see that we are able to add the overlapping server with a different 
tag, which ends up overwriting the existing server.

On one hand, this is symmetric with the behavior that I was originally 
intending, which was that in the remove scenario, the user should guard against 
removing the wrong server.
The same could be said for the addition of a server, where the user should make 
sure they are specifying the version when they are adding a server, to 
explicitly indicate that they know they are overwriting the existing server.

However on the other hand, since I've already added code in FLE to prevent an 
overlapping QuorumServer from syncing to the wrong cluster, I could see the 
argument for making sure everything else understands the tag as well. But the 
difference is that the syncing happens automatically in the background when an 
overlapping QuorumServer is brought up, whereas the user adding/removing nodes 
is explicit.

Personally I'd say that we leave it up to the user to guard against this 
situation for now, since I don't believe it differs from the existing behavior 
much. But they do get the benefit of now being able to somewhat coordinate 
concurrent joins/kicks of overlapping servers.

> 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)

Reply via email to