HI Qian, You are right we do have any way of handling clients dynamically so that every server has balanced load. This requires a careful design since we would not want client connections to keep flipping around and also maintain stability as much as we can. We have had some discussions about it but nothing concrete has materialized yet.
We do have checks in place that prevent more than a certain number of connections (default 10) from the same ip address. This is to keep too many zookeeper client instances from the same client bogging down the zookeeper service. Also, we have throttling for number of outstanding requests from clients (currently set to 1000 by default). This allows zookeeper service to throttle zookeeper clients. This throttling isnt done on per client basis but is just a check to not bring down the zookeeper service because of some misbehaved client. Any other checks that you specifically were thinking of? Thanks mahadev On 2/28/10 10:18 PM, "Qian Ye" <yeqian....@gmail.com> wrote: > Hi guys: > > As I know, when a client connected to Zookeeper servers, it would choose a > server randomly (without the zoo_deterministic_conn_odrder on), and then, > the client would talk to the server until a failure happened. It seems that > zookeeper server cannot handle the client connection dynamically according > to the load of the server. If some flaw of a client made the client connect > Zookeeper servers frequently, it may prevent other normal clients from > getting services from Zookeeper, right? So, is there any method to resolve > these two practical problems: > > 1. Handle and apportion clients dynamically, so every servers would have > balanced load. > 2. Some of frequency controller, which set a frequency threshold on the > frequency of requests from a client, prevent server resource from being > exhausted by a few clients. > > -- > With Regards! > > Ye, Qian