FYI - in Ted's scenario your application will most likely not be effected (if that's what you mean by "start a round of consensus").

From your app's perspective your ZK clients will get disconnected from one server and reconnected to another (as the server it is connected to is restarted with the new config). If you are using something like our standard recipes, say leadership election, your ephemeral znodes and watches are uneffected - you don't see a new leadership election, everything continues as normal.

Actually you could shut down the entire ZK cluster and restart it, your ZK clients should be uneffected - they will reconnect to a server automatically when the cluster comes up and all ephemeral znodes and watches are maintained as they were prior to the restart.

Hope this helps.


Avinash Lakshman wrote:
I would prefer not restarting. Start/Stop the new/old process and then start
a round of consensus for adding/removing a machine. I guess if one can do
that then there is stopping of process required.  Am I missing something


On Thu, Nov 5, 2009 at 11:14 AM, Ted Dunning <> wrote:

It is pretty easy to do by hand and is pretty easy to script (it was for

The process for adding is

a) configure and start a new node

b) re-configure and restart each existing node in turn to know about the

you now have a larger cluster.

To drop a node,

a) reconfigure and restart each surviving node

b) kill the node(s) that is(are) leaving

you now have a smaller cluster.

On Thu, Nov 5, 2009 at 11:02 AM, Avinash Lakshman <> wrote:

Hi All

Is it possible to remove nodes and add nodes dynamically to the ZK
via API? Any plans in the future to do this?


Ted Dunning, CTO

Reply via email to