Fetching contributors…
Cannot retrieve contributors at this time
46 lines (34 sloc) 2.13 KB
0.6.3 - Nov. 30, 2011
* Added Service Discovery
0.6.1 - Nov. 18, 2011
* Added new methods to LeaderSelector to identify/get all Participants
* Moved to ZooKeeper 3.3.3
* Made the TestingCluster not throw an assertion error due to internal JMX registrations
in ZK. This is done with Javaassist ugliness.
* Refactored listeners in Curator to a common methodology
* Major changes to error handling. Adding a ConnectionStateManager that allows users to
listen for connection changes. Connection loss is first treated as a recoverable Suspension.
If the connection is not re-established, the state changes to connection loss. Any recipes
that are affected by this have been updated.
* PathChildrenCache now handles connection state changes much better.
* All Curator created threads now have a meaningful name.
0.5.2 - Nov. 14, 2011
* Jérémie Bordier posted on the ZK mailing list about a split brain issue with the Leader Selector.
If the Leader is connected to a server that suffers a network partition, it needs to get notified
that it has lost leadership. Curator handled this somewhat but only if the client application
executed periodic ZooKeeper operations. I've enhanced the CuratorFramework implementation to check
for disconnection and executed a background sync (with retries). This will cause any listener's
unhandledError() method to get called when there is a network partition.
* New utility: TestingCluster. Allows for testing with an in-memory ZK ensemble.
* Reworked distributed atomic implementations. I was unhappy with the complexity of the previous
one. Now, there's a simpler master implementation DistributedAtomicValue that is the basis for the
others. Adding new versions should be simpler as well.
0.5.1 - Nov. 12, 2011
* Another pass at fixing the semaphore. Went back to the model of the count being merely a
convention. Added a new recipe for a SharedCount that can be used in place of the count convention
with the semaphore. This is the best of both worlds. The semaphore code is a lot simpler and will
perform better. Thanks to Monal Daxini for the idea.