zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mohammad Shamma <mohammadsha...@gmail.com>
Subject Re: Zookeeper Configuration Sync
Date Mon, 08 Jul 2013 22:08:16 GMT
Thanks for the documentation draft reference.

I have been using the configuration information read using the zk client
(post making the reconfig call) as a basis for generating the config file
of the new zookeeper server.


On Mon, Jul 8, 2013 at 2:48 PM, Alexander Shraer <shralex@gmail.com> wrote:

> To your question, you can initialize the joiners config with a list
> including the current servers and the new one. Or current leader and new
> server - works too but more fragile. If two servers join they shouldn't
> have each other in their initial configs. See ZK-1660 for user manual.
> On Jul 8, 2013 1:27 PM, "Mohammad Shamma" <mohammadshamma@gmail.com>
> wrote:
>
> > Sorry for the late reply,
> >
> >
> > On Fri, Jun 21, 2013 at 11:47 PM, Alexander Shraer <shralex@gmail.com
> > >wrote:
> >
> > > Hi Mohammad,
> > >
> > > +1 for the unique ensemble identifier request. We actually discussed
> > > this a long time ago but somehow never got to do this.
> > > Can you open a JIRA for this ?
> > >
> >
> > I will do that.
> >
> >
> > >
> > > Suppose that server A has the latest log but only talks with server B
> > > during leader election (C is down or slow). A doesn't know whether
> > > or not the latest operations in its log are committed (in this case C
> > > would have them, but A doesn't know if this is the case). So to be
> > > safe
> > > everything in A's log gets committed in this case.
> >
> >
> > > We took the approach that a reconfiguration is treated similarly to
> > > normal data updates. When a server has the most up-to-date log and
> > > talks with a majority during leader election, it will be elected
> > > leader and commit its log to the other servers. It won't truncate its
> > > log even
> > > if its clear that some operations were not committed. This is true for
> > > normal updates as well as for reconfigurations.
> > >
> > > BTW, I'm not sure why you are shutting down servers or clearing the
> > > data during reconfigurations, or why you're manually changing config
> > > files.
> >
> >
> > The reason I am shutting down and clearing the data of the "to be added"
> > servers is to delete their history as the intention here is to make them
> > join a new fresh deployment.
> >
> > You can add servers to the ensemble by invoking the reconfig command
> > > and this will make all the necessary changes to the config files,
> > > including specifying the right config version.
> > >
> >
> > If that is the case, what goes into the zookeeper config file of a new
> > zookeeper server that is supposed to join an existing ensemble?
> >
> >
> > >
> > > Alex
> > >
> > >
> > > On Fri, Jun 21, 2013 at 3:00 PM, Mohammad Shamma
> > > <mohammadshamma@gmail.com> wrote:
> > > > I have a use case where I dynamically grow a zookeeper ensemble on
> the
> > > same
> > > > fixed set of machines multiple times. In each iteration, the ensemble
> > is
> > > > grown incrementally till it consists of "n" servers. I will refer to
> > the
> > > > machines hosting the servers as zk-1, zk-2, ..., zk-n.
> > > >
> > > > At the beginning of each iteration, I wipe out the zookeeper data
> > > > directories of zk-1 and zk-2, then statically configure the zookeeper
> > > > servers on both of them to form a 2-way ensemble. After that, I start
> > > > growing the ensemble incrementally by reconfiguring the zookeeper
> > > ensemble
> > > > to include zk-i, then clearing, configure and starting the zookeeper
> > > server
> > > > on zk-i (that is for i in range(2,n)).
> > > >
> > > > I was not shutting down or cleaning up the previous ensemble
> zookeeper
> > > > servers at the end of each iteration. After initializing the 2-way
> > > ensemble
> > > > on zk-1 and zk-2, I observed that the servers from the old deployment
> > > were
> > > > contacting the servers of the new ensemble and triggering an ensemble
> > > > reconfiguration. A quick look at the code seems to suggest that this
> is
> > > > simply triggered by the virtue that the config version value of the
> old
> > > > deployment server is higher than that of that found on the new
> ensemble
> > > > servers. Can anyone confirm my understanding of this behaviour of
> > > zookeeper?
> > > >
> > > > I also noticed that his reconfiguration holds true for n=3. For
> example
> > > > lets say zookeeper  servers on zk-1 and zk-2 are freshly configured
> to
> > > form
> > > > a 2-way ensemble, and zk-3 contains a leftover server that was part
> of
> > an
> > > > older 3-way ensemble (that included two obselete servers on zk-1 and
> > > zk-2).
> > > > To me it seems a bit counter intuitive for one server (on zk-3) to
> > drive
> > > > the configuration of two other servers (zk1, zk2). The reason why it
> > > > seems counter intuitive is that the majority of the servers in the
> > > ensemble
> > > > agree on a different config version. Can somebody explain how
> zookeeper
> > > > handles this situation?
> > > >
> > > > One final note, it would be really useful if a zookeeper ensemble
> would
> > > > have a unique identifier that could be set in the "zoo.cfg" file.
> > > Whenever
> > > > servers communicate witch each other, they would verify that they are
> > > > talking to peers of the same ensemble before commencing with further
> > > > actions. Does that sound like a reasonable request?
> > > >
> > > > Thanks,
> > > >
> > > > --
> > > > Mohammad Shamma
> > >
> >
> >
> >
> > --
> > Mohammad Shamma
> >
>



-- 
Mohammad Shamma

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message