[
https://issues.apache.org/jira/browse/ZOOKEEPER-3140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16648379#comment-16648379
]
Brian Nixon commented on ZOOKEEPER-3140:
----------------------------------------
A note on future work - it would be cool to see the serialized format of the
QuorumVerifier (used for the dynamic config files and the like) updated to a
more extensible form so we can track more topology and port information through
it. This would give us a lot more flexibility in setting and propagating the
observer master port, in particular in letting each server publish its own port
instead of requiring a single static port for the whole ensemble. Would also be
useful for purposes such as ZOOKEEPER-3166.
I thought there was an existent Jira on this requested change but didn't see
one in a cursory search. I will create one specifically eventually, if I get
the time. :)
> Allow Followers to host Observers
> ---------------------------------
>
> Key: ZOOKEEPER-3140
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3140
> Project: ZooKeeper
> Issue Type: New Feature
> Components: server
> Affects Versions: 3.6.0
> Reporter: Brian Nixon
> Assignee: Brian Nixon
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 5h
> Remaining Estimate: 0h
>
> Observers function simple as non-voting members of the ensemble, sharing the
> Learner interface with Followers and holding only a slightly difference
> internal pipeline. Both maintain connections along the quorum port with the
> Leader by which they learn of all new proposals on the ensemble.
>
> There are benefits to allowing Observers to connect to the Followers to plug
> into the commit stream in addition to connecting to the Leader. It shifts the
> burden of supporting Observers off the Leader and allow it to focus on
> coordinating the commit of writes. This means better performance when the
> Leader is under high load, particularly high network load such as can happen
> after a leader election when many Learners need to sync. It also reduces the
> total network connections maintained on the Leader when there are a high
> number of observers. One the other end, Observer availability is improved
> since it will take shorter time for a high number of Observers to finish
> syncing and start serving client traffic.
>
> The current implementation only supports scaling the number of Observers
> into the hundreds before performance begins to degrade. By opening up
> Followers to also host Observers, over a thousand observers can be hosted on
> a typical ensemble without major negative impact under both normal operation
> and during post-leader election sync.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)