Return-Path: X-Original-To: apmail-helix-user-archive@minotaur.apache.org Delivered-To: apmail-helix-user-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C1B8B109E9 for ; Thu, 26 Sep 2013 23:54:36 +0000 (UTC) Received: (qmail 63789 invoked by uid 500); 26 Sep 2013 23:54:35 -0000 Delivered-To: apmail-helix-user-archive@helix.apache.org Received: (qmail 63753 invoked by uid 500); 26 Sep 2013 23:54:35 -0000 Mailing-List: contact user-help@helix.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@helix.incubator.apache.org Delivered-To: mailing list user@helix.incubator.apache.org Received: (qmail 63740 invoked by uid 99); 26 Sep 2013 23:54:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Sep 2013 23:54:35 +0000 X-ASF-Spam-Status: No, hits=1.0 required=5.0 tests=FREEMAIL_REPLY,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of kanak.b@hotmail.com designates 65.54.190.211 as permitted sender) Received: from [65.54.190.211] (HELO bay0-omc4-s9.bay0.hotmail.com) (65.54.190.211) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Sep 2013 23:54:29 +0000 Received: from BAY173-W28 ([65.54.190.199]) by bay0-omc4-s9.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 26 Sep 2013 16:54:09 -0700 X-TMN: [OlmxESs97Mne9KpWhLF4VQ6gEbaGNb/K] X-Originating-Email: [kanak.b@hotmail.com] Message-ID: From: Kanak Biscuitwala To: "user@helix.incubator.apache.org" , dev Subject: RE: New rebalancers: deltarebalancer & rebalancer Date: Thu, 26 Sep 2013 16:54:08 -0700 Importance: Normal In-Reply-To: References: , Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginalArrivalTime: 26 Sep 2013 23:54:09.0691 (UTC) FILETIME=[B17DD6B0:01CEBB13] X-Virus-Checked: Checked by ClamAV on apache.org Well actually I guess I can answer my own question: the current rebalancer = interface seems to be general enough to support adding a new delta implemen= tation that would fit in the current pipeline.=0A= =0A= ----------------------------------------=0A= > From: kanak.b@hotmail.com=0A= > To: user@helix.incubator.apache.org=3B dev@helix.incubator.apache.org=0A= > Subject: RE: New rebalancers: deltarebalancer & rebalancer=0A= > Date: Thu=2C 26 Sep 2013 16:51:42 -0700=0A= >=0A= > Seems reasonable. I guess this doesn't fit into a traditional state model= because the rebalancer can generate a new "state" each time. Do you envisi= on this being a generalization of the current rebalancer=2C or as part of a= new pipeline?=0A= >=0A= > Kanak=0A= > ________________________________=0A= >> Date: Thu=2C 26 Sep 2013 10:53:44 -0700=0A= >> Subject: New rebalancers: deltarebalancer & rebalancer=0A= >> From: g.kishore@gmail.com=0A= >> To: dev@helix.incubator.apache.org=3B user@helix.incubator.apache.org=0A= >>=0A= >> Hi=2C=0A= >>=0A= >> I am thinking of adding a delta rebalancer that simple compares the=0A= >> delta between idealstate and currentstate and generate transitions for= =0A= >> the delta. The main difference from existing implementation is that=0A= >> this does not need a state machine or any constraints on the state.=0A= >>=0A= >> Where can this be useful=0A= >> One scenario where this can be useful is managing the config versions.= =0A= >> For example we can say=0A= >>=0A= >> Node1:1.3=0A= >> Node2:1.3=0A= >>=0A= >> Each version can correspond to a set a config properties. If a new=0A= >> config is uploaded with new version=2C we send the transition for each= =0A= >> node to refresh the config. The benefit of this is clients will know=0A= >> what is the config version the participant is running. And leader can=0A= >> ensure that all participants are upgraded to latest config.=0A= >>=0A= >> We can take this a step further and allow the idealstate to be more=0A= >> expressive=0A= >>=0A= >> for example the state can be composed of multiple attributes=0A= >>=0A= >> N1: {a: aval=2C b:bval=2C c:cval}=0A= >> N1: {a: aval=2C b:bval=2C c:cval}=0A= >>=0A= >>=0A= >> And we can change each value independently.=0A= >>=0A= >> N1:{a:avalnew=2C b:bval=2C c:cval}=0A= >>=0A= >> we could then invoke the appropriate call back on the participant that= =0A= >> a changed and once the callback is processed the current state changes.= =0A= >>=0A= >> This kind of becomes a general way to manage configuration and keep=0A= >> track of what config the node is using. Note this is not supposed to=0A= >> say every single config property but it could be used to represent high= =0A= >> level config properties.=0A= >>=0A= >>=0A= >> Thoughts/feedback? At LinkedIn=2C i think this will help us manage schem= a=0A= >> versions.=0A= >>=0A= >> Thanks=2C=0A= >> Kishore G=0A= >>=0A= >>=0A= >>=0A= >>=0A= >>=0A= >>=0A= >>=0A= >>=0A= >> =