Return-Path: X-Original-To: apmail-incubator-general-archive@www.apache.org Delivered-To: apmail-incubator-general-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id ED2C9D827 for ; Tue, 26 Feb 2013 07:02:07 +0000 (UTC) Received: (qmail 16027 invoked by uid 500); 26 Feb 2013 07:02:06 -0000 Delivered-To: apmail-incubator-general-archive@incubator.apache.org Received: (qmail 15419 invoked by uid 500); 26 Feb 2013 07:02:05 -0000 Mailing-List: contact general-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: general@incubator.apache.org Delivered-To: mailing list general@incubator.apache.org Received: (qmail 15397 invoked by uid 99); 26 Feb 2013 07:02:05 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Feb 2013 07:02:05 +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 henry.saputra@gmail.com designates 209.85.223.180 as permitted sender) Received: from [209.85.223.180] (HELO mail-ie0-f180.google.com) (209.85.223.180) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Feb 2013 07:02:00 +0000 Received: by mail-ie0-f180.google.com with SMTP id bn7so4029779ieb.25 for ; Mon, 25 Feb 2013 23:01:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=xzQvsV6E89LASZ19MG8kDb/M9YDvESd/ukvgofTwCGY=; b=FYm8FyTZQMJ1c/ZSeQnuGnMxKHPkcW2qiCTioMXKAspAe8K/P/QXlP3zcvdIhgO6ld 5tyJnETJP/MFO2TMET7HgCmIVGx/9Tnif+dLifj2+mOuEizq58qd61rOYlJ/3HxadyVc s96TkaRtmJc5CfnM8q3OhJJU0yru8taSDYl56IRjOh9QGo+rIA4Dyoqsaw4mQBqj29kk N1hKQ9UeEPe8RextVjUikOeMiqS4YRAo5Mv43Uiwlc9HrHOvMkl8pZeKHk6Bby2DEZcc NXnP4C0F+Df35V5JODLBtSVL4uaAYMZdeV5re9XGpPkoG9VYpRGSUUxuSG25M9QLalu9 YVtQ== MIME-Version: 1.0 X-Received: by 10.50.42.202 with SMTP id q10mr4905730igl.108.1361862100052; Mon, 25 Feb 2013 23:01:40 -0800 (PST) Received: by 10.64.29.49 with HTTP; Mon, 25 Feb 2013 23:01:39 -0800 (PST) In-Reply-To: References: <0A53A375-DC3B-474F-9628-8DDBB65BB7BA@jordanzimmerman.com> Date: Mon, 25 Feb 2013 23:01:39 -0800 Message-ID: Subject: Re: [PROPOSAL] Curator for the Apache Incubator From: Henry Saputra To: general@incubator.apache.org Content-Type: multipart/alternative; boundary=14dae9340c5fb5068904d69b3a99 X-Virus-Checked: Checked by ClamAV on apache.org --14dae9340c5fb5068904d69b3a99 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable So isnt this similar to HCatalog which relying on Hive metadata service that ends up as sub project of Apache Hive? If Apache Zookeeper would like to add Curator as the next gen client I think it would be easier and integrated with the rest of ZK community. Just my 2-cents - Henry On Mon, Feb 25, 2013 at 7:10 PM, Greg Stein wrote: > My concern is that we're looking at two "new" committers, rather than > a Curator community. Following normal Incubator work, Curator would > build a community for itself. But then we'd have a community > *distinct* from that of Zookeeper. And it really looks like this > should be part of Zookeeper itself -- a more capable and easier-to-use > client. > > So I question the incubation of this. Why do we want to build a > new/separate project? Why isn't this just part of Zookeeper right from > the start? > > I would suggest that this work is placed on a branch within Zookeeper. > That Jordan and Jay become committers on that branch (not necessarily > Zookeeper trunk). Over time, the branch can be folded into trunk, > along with all the various tests, doc, and other artifacts that I see > in the GitHub repository. And hopefully that Jordan and Jay become > regular committers (and PMC members!) of the Zookeeper project itself. > > The current Zookeeper client can remain for backwards compat, and the > Curator work can become the next-gen client. > > Honestly, in my opnion, incubating this project seems like it would > create a distinct community, and really doesn't seem like it would > serve the Zookeeper community. > > All that said, I am not familiar with the Zookeeper or Curator > communities. But from this read, I don't think Incubation is the right > approach. I would rather push for a more direct incorporation of > Curator directly into Zookeeper. (use the short-form IP clearance) ... > so, unless somebody can help me understand the communities and > situation better, I'm -1 (binding) on this incubation. I'd rather see > combined, rather than distinct, communities from the start. > > Thanks, > -g > > On Mon, Feb 25, 2013 at 8:14 PM, Jordan Zimmerman > wrote: > > Hello, > > > > I would like to propose that Curator to be an Apache Incubator project. > > > > The proposal can be found here: > http://wiki.apache.org/incubator/CuratorProposal > > > > I have included the contents of the proposal below. > > > > Sincerely, > > > > Jordan Zimmerman > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > =3D Curator - ZooKeeper client wrapper and rich ZooKeeper framework =3D > > > > =3D=3D Abstract =3D=3D > > > > Curator is a set of Java libraries that make using Apache ZooKeeper muc= h > easier. While ZooKeeper comes bundled with a Java client, using the clien= t > is non-trivial and error prone. > > > > =3D=3D Proposal =3D=3D > > > > Curator is a set of Java libraries that make using Apache ZooKeeper muc= h > easier. While ZooKeeper comes bundled with a Java client, using the clien= t > is non-trivial and error prone. It consists of three components that buil= d > on each other. Curator Client is a replacement for the bundled ZooKeeper > class that takes care of some low-level housekeeping and provides some > useful utilities. Curator Framework is a high-level API that greatly > simplifies using ZooKeeper. It adds many features that build on ZooKeeper > and handles the complexity of managing connections to the ZooKeeper clust= er > and retrying operations. Curator Recipes consists of implementations of > some of the common ZooKeeper =E2=80=9Crecipes=E2=80=9D. Additionally, Cur= ator Test is > included which includes utilities to help with unit testing ZooKeeper-bas= ed > applications. > > > > =3D=3D Background =3D=3D > > > > Curator was initially developed by Netflix to make writing > ZooKeeper-based applications easier and more reliable. Curator was > open-sourced by Netflix on !GitHub as an Apache 2.0 licensed project in > July 2011. During this time Curator has been formally released many times > and has gained widespread adoption. > > > > =3D=3D Rationale =3D=3D > > > > New users of ZooKeeper are surprised to learn that a significant amount > of connection management must be done manually. For example, when the > ZooKeeper client connects to the ensemble it must negotiate a new session= , > etc. This takes some time. If you use a ZooKeeper client API before the > connection process has completed, ZooKeeper will throw an exception. Thes= e > types of exceptions are referred to as =E2=80=9Crecoverable=E2=80=9D erro= rs. > > Curator automatically handles connection management, greatly simplifyin= g > client code. Instead of directly using the ZooKeeper APIs you use Curator > APIs that internally check for connection completion and wrap each > ZooKeeper API in a retry loop. Curator uses a retry mechanism to handle > recoverable errors and automatically retry operations. The method of retr= y > is customizable. Curator comes bundled with several implementations > (ExponentialBackoffRetry, etc.) or custom implementations can be written. > > > > The ZooKeeper documentation describes many possible uses for ZooKeeper > calling each a =E2=80=9Crecipe=E2=80=9D. While the distribution comes bun= dled with a few > implementations of these recipes, most ZooKeeper users will need to > manually implement one or more of the recipes. Implementing a ZooKeeper > recipe is not trivial. Besides the connection handling issues, there are > numerous edge cases that are not well documented that must be considered. > For example, many recipes require that an ephemeral-sequential node be > created. New users of ZooKeeper will not know that there is an edge case = in > ephemeral-sequential node creation that requires you to put a special > =E2=80=9Cmarker=E2=80=9D in the node=E2=80=99s name so that you can searc= h for the created node if > an I/O failure occurs. This is but one of many edge cases that are not we= ll > documented but are handled by Curator. > > > > =3D Current Status =3D > > > > =3D=3D Meritocracy =3D=3D > > > > Curator was initially developed by Jordan Zimmerman in 2011 at Netflix. > Developers external to Netflix provided feedback, suggested features and > fixes and implemented extensions of Curator. Netflix's engineering team h= as > since maintained the project and has been dedicated towards its > improvement. Contributors to Curator include developers from multiple > organizations around the world. Curator will be a meritocracy as it enter= s > the Incubator and beyond. > > > > =3D=3D Community =3D=3D > > > > Curator is currently used by a number of organizations all over the > world. Curator has an active and growing user and developer community wit= h > active participation in the [[http://groups.google.com/group/curator-user= s]] > mailing list and at its !Github home: [[ > https://github.com/Netflix/curator]]. > > > > Since open sourcing the project, there have been fifteen individuals > from various organizations who have contributed code. > > > > =3D=3D Core Developers =3D=3D > > > > The core developers for Curator are: > > * Jordan Zimmerman > > * Jay Zarfoss > > > > Jordan has contributed towards Apache ZooKeeper and both Jordan and Jay > are familiar with Apache principles and philosophy for community driven > software development. > > > > =3D=3D Alignment =3D=3D > > > > Curator is a natural complement for Apache ZooKeeper. Java users of > ZooKeeper will naturally want to use Curator. When Curator graduates from > Incubator it may be useful to distribute Curator artifacts as part of > ZooKeeper releases as the preferred/recommended client side library. > Further, at graduation a determination can be made as to whether Curator > should become a Top Level Project or be merged into ZooKeeper itself. > > > > =3D Known Risks =3D > > > > =3D=3D Orphaned Products =3D=3D > > > > Curator is already deployed in production at multiple companies and the= y > are actively participating in creating new features. Curator is getting > traction with developers and thus the risks of it being orphaned are > minimal. > > > > =3D=3D Inexperience with Open Source =3D=3D > > > > All code developed for Curator has been open sourced by Netflix under > Apache 2.0 license. All committers to Curator are intimately familiar wi= th > the Apache model for open-source development and are experienced with > working with new contributors. > > > > =3D=3D Homogeneous Developers =3D=3D > > > > The initial committers are from a single organization. However, we > expect that once approved for incubation, the project will attract new > contributors from diverse organizations and will thus grow organically. T= he > submission of patches from developers from several different organization= s > is a strong indication that Curator will be widely adopted. > > > > =3D=3D Reliance on Salaried Developers =3D=3D > > > > It is expected that Curator will be developed on salaried and volunteer > time, although all of the initial developers will work on it mainly on > salaried time. > > > > =3D=3D Relationships with Other Apache Products =3D=3D > > > > Curator depends upon other Apache Projects: Apache ZooKeeper, Apache > Log4J, and multiple Apache Commons components. Its build depends upon > Apache Maven. Notably, there is interest from other Apache Projects such = as > HBase in adopting Curator as the client library for ZooKeeper. Apache Jam= es > Mailbox has already incorporated Curator. > > > > =3D=3D An Excessive Fascination with the Apache Brand =3D=3D > > > > We would like Curator to become an Apache project to further foster a > healthy community of contributors and consumers around the project. Sinc= e > Curator directly interacts with Apache ZooKeeper and solves an important > problem of many ZooKeeper users, residing in the Apache Software Foundati= on > will increase interaction with the larger community. > > > > =3D Documentation =3D > > > > * Curator wiki at GitHub: https://github.com/Netflix/curator/wiki > > * Curator issues at GitHub: https://github.com/Netflix/curator/issues > > * Curator javadoc at GitHub: http://netflix.github.com/curator/doc/ > > > > =3D Initial Source =3D > > > > * git://github.com/Netflix/curator.git > > > > =3D=3D Source and Intellectual Property Submission Plan =3D=3D > > > > * The initial source is already licensed under the Apache License, > Version 2.0. https://github.com/Netflix/curator/blob/master/LICENSE.txt > > > > =3D=3D External Dependencies =3D=3D > > > > The required external dependencies are all Apache License or compatible > licenses. Following components with non-Apache licenses are enumerated: > > > > * org.slf4j: MIT-like License > > * org.mockito: MIT-like License > > > > =3D=3D Cryptography =3D=3D > > > > Curator contains no known cryptography. > > > > =3D Required Resources =3D > > > > =3D=3D Mailing lists =3D=3D > > > > * curator-private (with moderated subscriptions) > > * curator-dev > > * curator-commits > > * curator-user > > > > =3D=3D Github Repositories =3D=3D > > > > http://github.com/apache/curator git://git.apache.org/curator.git > > > > =3D=3D Issue Tracking =3D=3D > > > > JIRA Curator (CURATOR) > > > > =3D=3D Other Resources =3D=3D > > > > The existing code already has unit and integration tests so we would > like a Jenkins instance to run them whenever a new patch is submitted. Th= is > can be added after project creation. > > > > =3D Initial Committers =3D > > > > * Jordan Zimmerman (jzimmerman at netflix dot com) > > * Jay Zarfoss (jzarfoss at netflix dot com) > > > > =3D Affiliations =3D > > > > * Jordan Zimmerman, Netflix > > * Jay Zarfoss, Netflix > > > > =3D Sponsors =3D > > > > =3D=3D Champion =3D=3D > > > > * Patrick Hunt > > > > =3D=3D Nominated Mentors =3D=3D > > > > * Patrick Hunt > > * Enis S=C3=B6ztutar > > * Mahadev Konar > > > > =3D=3D Sponsoring Entity =3D=3D > > > > * Apache Incubator PMC > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org > For additional commands, e-mail: general-help@incubator.apache.org > > --14dae9340c5fb5068904d69b3a99--