Brian Nixon created ZOOKEEPER-3140:
--------------------------------------
Summary: 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
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)