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

Flavio Paiva Junqueira commented on ZOOKEEPER-549:
--------------------------------------------------

I originally thought that by using LEANERINFO for both observers and followers, 
we would make the protocol backward compatible. I now realize that it makes no 
difference. 

Once we add observers, if we have an observer trying to connect to an old 
leader, even if we use LEANERINFO (with the same value 11 we have for 
FOLLOWERINFO in trunk), it won't work because the leader will expect acks from 
that observer. An old server can also connect as a follower to a new leader 
without a problem if we keep FOLLOWERINFO as is. We would have a problem if the 
follower were configured as an observer on the leader, but I suppose this is a 
configuration error.

My conclusion is that I don't see an issue with using OBSERVERINFO or 
FOLLOWERINFO regarding backward compatibility. The only issue I see is that 
having OBSERVERINFO creates yet another message and there is a way around it. I 
personally don't think it is a big deal to add another message, but some folks 
might not like it.

On my end, +1 for the patch. We can continue the discussion on adding 
OBSERVERINFO or not in the observer jira. For this patch, I think it is good as 
is.

> Refactor Followers and related classes into a Peer->Follower hierarchy in 
> preparation for Observers
> ---------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-549
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-549
>             Project: Zookeeper
>          Issue Type: Improvement
>          Components: quorum, server
>    Affects Versions: 3.2.1
>            Reporter: Henry Robinson
>            Assignee: Henry Robinson
>             Fix For: 3.3.0
>
>         Attachments: ZOOKEEPER-549.patch, ZOOKEEPER-549.patch, 
> ZOOKEEPER-549.patch, ZOOKEEPER-549.patch
>
>
> For the Observers patch (ZOOKEEPER-368), a lot of functionality is shared 
> between Followers and Observers. To avoid copying code, it makes sense to 
> push the common code into a parent Peer class and specialise it for Followers 
> and Observers. At the same time, some of the lengthier methods in Follower 
> can be broken up to make the code more readable. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to