Return-Path: X-Original-To: apmail-zookeeper-user-archive@www.apache.org Delivered-To: apmail-zookeeper-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8D5121079E for ; Mon, 8 Jul 2013 20:27:18 +0000 (UTC) Received: (qmail 9851 invoked by uid 500); 8 Jul 2013 20:27:17 -0000 Delivered-To: apmail-zookeeper-user-archive@zookeeper.apache.org Received: (qmail 9791 invoked by uid 500); 8 Jul 2013 20:27:17 -0000 Mailing-List: contact user-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@zookeeper.apache.org Delivered-To: mailing list user@zookeeper.apache.org Received: (qmail 9783 invoked by uid 99); 8 Jul 2013 20:27:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Jul 2013 20:27:17 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mohammadshamma@gmail.com designates 209.85.216.49 as permitted sender) Received: from [209.85.216.49] (HELO mail-qa0-f49.google.com) (209.85.216.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Jul 2013 20:27:12 +0000 Received: by mail-qa0-f49.google.com with SMTP id hu16so2495713qab.8 for ; Mon, 08 Jul 2013 13:26:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=h6ldvyKbB4htdAltwYE5Fd/N1q/TLWb1rCx45YQnBN0=; b=y/UolW6qCK2gAVhlqNaVkiZHIAog08Gpf37e2zvQitybmGBQT2b1qIOI41dcrIy7sI 1M0QKb9YCTQMxenb6ed/25iP7F4eCYrblOWpLwOzEmSYzH3TmvVlBYoVLVQOLGL5qi2j cGs1TDZ4JS6EENXRNxg1ujTwyoqdn2jXxsMbcuCCZCVF2xTeu1XCXz++G4rl8+EmLxSV MT61HoDh1INL4om0wr7Sdf4UVnSdDhRMtix9AufidciHhuZYCS7saYvZmWfDPVfqOLEF Jnli//Hz4+7DZaAQgYZZy0Czei1a9Syn/IF5z3lfFj7xNOOUgTVeoaQADY/US0aWS0Tt QBeg== MIME-Version: 1.0 X-Received: by 10.224.36.143 with SMTP id t15mr20417520qad.60.1373315211459; Mon, 08 Jul 2013 13:26:51 -0700 (PDT) Received: by 10.224.151.18 with HTTP; Mon, 8 Jul 2013 13:26:51 -0700 (PDT) In-Reply-To: References: Date: Mon, 8 Jul 2013 13:26:51 -0700 Message-ID: Subject: Re: Zookeeper Configuration Sync From: Mohammad Shamma To: user@zookeeper.apache.org Content-Type: multipart/alternative; boundary=089e0149d0f258101e04e105ddb6 X-Virus-Checked: Checked by ClamAV on apache.org --089e0149d0f258101e04e105ddb6 Content-Type: text/plain; charset=ISO-8859-1 Sorry for the late reply, On Fri, Jun 21, 2013 at 11:47 PM, Alexander Shraer 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 > 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 --089e0149d0f258101e04e105ddb6--