You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by Jordan Zimmerman <jz...@netflix.com> on 2013/01/02 00:45:15 UTC

ANN: Curator 1.2.6

* Issue 214: Added rebuildNode method to PathChildrenCache.

* Added a NodeCache to compliment the PathChildrenCache. The doc is here:
https://github.com/Netflix/curator/wiki/Node-Cache

* Creating nodes in background wasn't handling createParentsIfNeeded.

* Issue 216: Rewrote LeaderLatch to better handle connection/server instability. At the same time, made
most of the calls async which will help concurrency and performance.

* Issue 217: DistributedAtomicLong (et al) should use ensurePath internally to be consistent with
other recipes.

* Issue 220: When creating a ServiceCacheImpl, a PathChildrenCache is created. The cache loads all existing services,
but because preloading does not create events, ServiceCacheImpl never notices this. ServiceCacheImpl.getInstances()
will return an empty list.

* Issue 221: client.getACL().forPath("/") throws a NullPointerException, because the Zookeeper
API expects a Stat, but GetACLBuilderImpl initializes responseStat to null.

* Issue 222: Counter and log messages reversed in RetryLoop.takeException().

* New feature: CuratorTempFramework. Temporary CuratorFramework instances are meant for single requests to
ZooKeeper ensembles over a failure prone network such as a WAN. The APIs available from CuratorTempFramework
are limited. Further, the connection will be closed after a period of inactivity. Based on an idea mentioned in a
post by Camille Fournier: http://whilefalse.blogspot.com/2012/12/building-global-highly-available.html - details
here: https://github.com/Netflix/curator/wiki/Temporary-Framework

* Issue 224: ExponentialBackoffRetry was not protected against edge-cases where a too big maxRetries argument
was used. It now also incorporates a maxSleep value.