You asked! I started in on reading the code last night. I don't know if I will have much more time to go deeper and I apologize for any superficiality of these reactions.
My first blush is that the the builder style API is not a big win (styles will vary of course). I like that you have common recipes, but any time anybody starts talking global locks in a cluster, I get hives and start looking for the fundamental error in the interaction model. Locks are typically a total disaster for system reliability, throughput and probability of correct coding. Insofar as specifics are concerned, I looked at the atomic update stuff and don't like the fast fallback to a lock. I think that limited randomized exponential backoff is likely to be a more scalable solution if only because the lock is hard to integrate into the protocol without, well, putting a lock into the protocol (see above for my opinion on that). Incorporating priority of the update into the backoff time constant is one way to avoid starvation. What I prefer to see in this context is a method that takes a closure that does the desired mutation and which encapsulates the necessary read, modify, write, retry logic. On Tue, Oct 11, 2011 at 8:18 PM, Jordan Zimmerman <jzimmer...@netflix.com>wrote: > We'd appreciate any/all feedback, BTW. > > -JZ > > On 10/11/11 1:04 PM, "Mahadev Konar" <maha...@hortonworks.com> wrote: > > >Nice. Good to see the Apache License. > > > > > >mahadev > > > >On Mon, Oct 10, 2011 at 2:22 PM, Jordan Zimmerman > ><jzimmer...@netflix.com>wrote: > > > >> https://github.com/Netflix/curator > >> > >> > >> What is Curator? > >> Curator n: a keeper or custodian of a museum or other collection - A > >> ZooKeeper Keeper. > >> > >> 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. > >> > >> Components > >> Client - A replacement for the bundled ZooKeeper class that takes care > >>of > >> some low-level housekeeping and provides some useful utilities > >> > >> Framework - The 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. > >> > >> Recipes - Implementations of some of the common ZooKeeper "recipes". The > >> implementations are built on top of the Curator Framework > >> > >> Utilities - Various utilities that are useful when using ZooKeeper. > >> > >> > >> > >