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)

Reply via email to