[
https://issues.apache.org/jira/browse/ZOOKEEPER-3140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16713870#comment-16713870
]
Hudson commented on ZOOKEEPER-3140:
-----------------------------------
SUCCESS: Integrated in Jenkins build ZooKeeper-trunk #301 (See
[https://builds.apache.org/job/ZooKeeper-trunk/301/])
ZOOKEEPER-3140: Allow Followers to host Observers (fangmin: rev
b2513c114931dc377bac5e1d39e2f81c6e8cf17e)
* (edit)
zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverTest.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Observer.java
* (add)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandlerBean.java
* (add)
zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
* (add)
zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/DelayRequestProcessor.java
* (add)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerMaster.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/admin/Commands.java
* (edit) zookeeper-server/src/test/resources/findbugsExcludeFile.xml
* (edit) zookeeper-server/src/test/java/org/apache/zookeeper/ZKTestCase.java
* (edit) zookeeper-docs/src/main/resources/markdown/zookeeperObservers.md
* (add)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMaster.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java
* (edit)
zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerTest.java
* (edit)
zookeeper-server/src/test/java/org/apache/zookeeper/test/ReconfigTest.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java
* (add)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandlerMXBean.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerBean.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/ObserverMXBean.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
* (edit) zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/ObserverBean.java
* (edit)
zookeeper-server/src/test/java/org/apache/zookeeper/server/util/PortForwarder.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerRequestProcessor.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeerMain.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/FollowerMXBean.java
* (edit)
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Leader.java
> 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
> Fix For: 3.6.0
>
> Time Spent: 8h 20m
> 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)