[ https://issues.apache.org/jira/browse/ZOOKEEPER-2163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14578927#comment-14578927 ]
ASF GitHub Bot commented on ZOOKEEPER-2163: ------------------------------------------- GitHub user Randgalt opened a pull request: https://github.com/apache/zookeeper/pull/34 ZOOKEEPER-2163 - update doc for container options to reflect correct version of 3.5.1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/Randgalt/zookeeper ZOOKEEPER-2163.2 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/34.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #34 ---- commit f79e5e36f87d5f6cab0e6bf3e42b746efb5b1a97 Author: randgalt <jor...@jordanzimmerman.com> Date: 2015-06-09T14:11:13Z ZOOKEEPER-2163 - update doc for container options to reflect correct version of 3.5.1 ---- > Introduce new ZNode type: container > ----------------------------------- > > Key: ZOOKEEPER-2163 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2163 > Project: ZooKeeper > Issue Type: New Feature > Components: c client, java client, server > Affects Versions: 3.5.0 > Reporter: Jordan Zimmerman > Assignee: Jordan Zimmerman > Fix For: 3.5.1, 3.6.0 > > Attachments: zookeeper-2163.10.patch, zookeeper-2163.11.patch, > zookeeper-2163.12.patch, zookeeper-2163.13.patch, zookeeper-2163.14.patch, > zookeeper-2163.3.patch, zookeeper-2163.5.patch, zookeeper-2163.6.patch, > zookeeper-2163.7.patch, zookeeper-2163.8.patch, zookeeper-2163.9.patch > > > BACKGROUND > ============ > A recurring problem for ZooKeeper users is garbage collection of parent > nodes. Many recipes (e.g. locks, leaders, etc.) call for the creation of a > parent node under which participants create sequential nodes. When the > participant is done, it deletes its node. In practice, the ZooKeeper tree > begins to fill up with orphaned parent nodes that are no longer needed. The > ZooKeeper APIs don’t provide a way to clean these. Over time, ZooKeeper can > become unstable due to the number of these nodes. > CURRENT SOLUTIONS > =================== > Apache Curator has a workaround solution for this by providing the Reaper > class which runs in the background looking for orphaned parent nodes and > deleting them. This isn’t ideal and it would be better if ZooKeeper supported > this directly. > PROPOSAL > ========= > ZOOKEEPER-723 and ZOOKEEPER-834 have been proposed to allow EPHEMERAL nodes > to contain child nodes. This is not optimum as EPHEMERALs are tied to a > session and the general use case of parent nodes is for PERSISTENT nodes. > This proposal adds a new node type, CONTAINER. A CONTAINER node is the same > as a PERSISTENT node with the additional property that when its last child is > deleted, it is deleted (and CONTAINER nodes recursively up the tree are > deleted if empty). > CANONICAL USAGE > ================ > {code} > while ( true) { // or some reasonable limit > try { > zk.create(path, ...); > break; > } catch ( KeeperException.NoNodeException e ) { > try { > zk.createContainer(containerPath, ...); > } catch ( KeeperException.NodeExistsException ignore) { > } > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)