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!

Reply via email to