Hi Muzhi! Unfortunately I’m not aware of such performance analysis in the ZooKeeper documentation, but you could get an idea of the performance impact by considering the following:
From the wiki: https://wiki.apache.org/hadoop/ZooKeeper/Observers <https://wiki.apache.org/hadoop/ZooKeeper/Observers> - The Leader must keep track of all Observers. The cost is the same as for each Follower - in fact in the current implementation FollowerHandlers are used to handle Observer connections. - Observers must receive every proposal via a single INFORM message, adding N messages to every proposal for N Observers. The idea behind using observers is to improve read performance without affecting write performance (observers don’t participate in voting). However, as the first statement indicates, the leader must track of observers and using many observers can be a bottleneck on the leader. In order to address this issue the following Jira has been merged recently to allow Followers to host observers too: https://issues.apache.org/jira/browse/ZOOKEEPER-3140 <https://issues.apache.org/jira/browse/ZOOKEEPER-3140> The feature will be available in the 3.6.0 release. Regards, Andor > On 2018. Dec 27., at 17:13, Muzhi <[email protected]> wrote: > > Hello! > I'm a user of Zookeeper,I have some questions about Observer.In the > Zookeeper Documentation there's a figure,Zookeeper Throughtput as the > Read-Write Ratio Varie,not include the Observer and the documentation just > talk about how to set Observer or example use case.So I'm confused if we set > Observer in cluster,how many Observer should be set can have a higher > performance? For example,if I have 3 servers set to Leader of Follower,How > many Observer should I set that cluster have a higher performance?Do you have > a figure such as "Zookeeper Throughtput as the Read-Write Ratio Varie" that > include Observer? > Looking forward to your reply,thanks!
