Are any of you PMC members? If so, I'd appreciate a vote on putting Curator in the Incubator. The vote is going on now.
-JZ > On 3/5/13 10:21 AM, "Jordan Zimmerman" <[email protected]> wrote: > >> Discussion has settled down so I am calling a VOTE for acceptance of >> Curator into the Apache Incubator. >> >> The vote will close at on Friday, March 8, 2013. >> >> [ ] +1 Accept Curator into the Apache incubator >> [ ] +0 Don't care. >> [ ] -1 Don't accept Curator into the incubator because... >> >> Full proposal is pasted below and the corresponding wiki is >> http://wiki.apache.org/incubator/CuratorProposal >> >> Only VOTEs from Incubator PMC members are binding, but all are welcome to >> express their thoughts. >> >> Sincerely, >> >> Jordan Zimmerman >> >> === PROPOSAL === >> >> Curator - ZooKeeper client wrapper and rich ZooKeeper framework >> >> Abstract >> >> Curator is a set of Java libraries that make using Apache ZooKeeper much >> easier. While ZooKeeper comes bundled with a Java client, using the >> client is non-trivial and error prone. >> >> Proposal >> >> Curator is a set of Java libraries that make using Apache ZooKeeper much >> easier. While ZooKeeper comes bundled with a Java client, using the >> client is non-trivial and error prone. It consists of three components >> that build 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 cluster and retrying operations. Curator Recipes consists of >> implementations of some of the common ZooKeeper "recipes". Additionally, >> Curator Test is included which includes utilities to help with unit >> testing ZooKeeper-based applications. >> >> Background >> >> 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. >> >> Rationale >> >> 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. These types of exceptions are referred to as "recoverable" >> errors. Curator automatically handles connection management, greatly >> simplifying 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 retry 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 "recipe". While the distribution comes bundled 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 >> "marker" in the node¹s name so that you can search for the created node >> if an I/O failure occurs. This is but one of many edge cases that are not >> well documented but are handled by Curator. >> >> Current Status >> >> Meritocracy >> >> 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 >> has 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 >> enters the Incubator and beyond. >> >> Community >> >> Curator is currently used by a number of organizations all over the >> world. Curator has an active and growing user and developer community >> with active participation in the >> http://groups.google.com/group/curator-users 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. >> >> Core Developers >> >> 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. >> >> Alignment >> >> 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. >> That being said, some IPMC members feel that Curator should grow into its >> own TLP rather than be a part of ZooKeeper. >> >> Known Risks >> >> Orphaned Products >> >> Curator is already deployed in production at multiple companies and they >> are actively participating in creating new features. Curator is getting >> traction with developers and thus the risks of it being orphaned are >> minimal. >> >> Inexperience with Open Source >> >> All code developed for Curator has been open sourced by Netflix under >> Apache 2.0 license. All committers to Curator are intimately familiar >> with the Apache model for open-source development and are experienced >> with working with new contributors. >> >> Homogeneous Developers >> >> 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. >> The submission of patches from developers from several different >> organizations is a strong indication that Curator will be widely adopted. >> >> Reliance on Salaried Developers >> >> 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. >> >> Relationships with Other Apache Products >> >> 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 >> James Mailbox has already incorporated Curator. >> >> An Excessive Fascination with the Apache Brand >> >> We would like Curator to become an Apache project to further foster a >> healthy community of contributors and consumers around the project. Since >> Curator directly interacts with Apache ZooKeeper and solves an important >> problem of many ZooKeeper users, residing in the Apache Software >> Foundation will increase interaction with the larger community. >> >> Documentation >> >> € 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/ >> Initial Source >> >> € git://github.com/Netflix/curator.git >> Source and Intellectual Property Submission Plan >> >> € The initial source is already licensed under the Apache License, >> Version 2.0. https://github.com/Netflix/curator/blob/master/LICENSE.txt >> External Dependencies >> >> 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 >> Cryptography >> >> Curator contains no known cryptography. >> >> Required Resources >> >> Mailing lists >> >> € curator-private (with moderated subscriptions) >> € curator-dev >> € curator-commits >> € curator-user >> GitHub Repositories >> >> http://github.com/apache/curator git://git.apache.org/curator.git >> >> Issue Tracking >> >> JIRA Curator (CURATOR) >> >> Other Resources >> >> 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. This >> can be added after project creation. >> >> Initial Committers >> >> € Jordan Zimmerman (jzimmerman at netflix dot com) >> € Jay Zarfoss (jzarfoss at netflix dot com) >> Affiliations >> >> € Jordan Zimmerman, Netflix >> € Jay Zarfoss, Netflix >> Sponsors >> >> Champion >> >> € Patrick Hunt >> Nominated Mentors >> >> € Patrick Hunt >> € Enis Söztutar >> € Mahadev Konar >> € Luciano Resende >> Sponsoring Entity >> >> € Apache Incubator PMC >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] >
