|
|
-
recursive delete in multi
Ted Yu 2013-03-13, 22:54
Hi, Currently multi() only supports single delete Op:
public void testNestedCreate() throws Exception {
multi(zk, Arrays.asList(
/* Create */
Op.create("/multi", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
Op.create("/multi/a", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
Op.create("/multi/a/1", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT),
/* Delete */
Op.delete("/multi/a/1", 0),
Op.delete("/multi/a", 0),
Op.delete("/multi", 0)
));
To obtain all the paths to be deleted, I need to traverse all the children of the specified node. Is there plan to support recursive deletion in multi so that I don't need to perform the traversal first ? Thanks
-
Re: recursive delete in multi
Marshall McMullen 2013-03-14, 03:22
No plans to add that at this point that I know of. Certainly haven't seen any jira for this. On Wed, Mar 13, 2013 at 4:54 PM, Ted Yu <[EMAIL PROTECTED]> wrote:
> Hi, > Currently multi() only supports single delete Op: > > public void testNestedCreate() throws Exception { > > multi(zk, Arrays.asList( > > /* Create */ > > Op.create("/multi", new byte[0], Ids.OPEN_ACL_UNSAFE, > CreateMode.PERSISTENT), > > Op.create("/multi/a", new byte[0], Ids.OPEN_ACL_UNSAFE, > CreateMode.PERSISTENT), > > Op.create("/multi/a/1", new byte[0], Ids.OPEN_ACL_UNSAFE, > CreateMode.PERSISTENT), > > /* Delete */ > > Op.delete("/multi/a/1", 0), > > Op.delete("/multi/a", 0), > > Op.delete("/multi", 0) > > )); > > To obtain all the paths to be deleted, I need to traverse all the children > of the specified node. Is there plan to support recursive deletion in multi > so that I don't need to perform the traversal first ? > > > Thanks >
-
Re: recursive delete in multi
Ted Yu 2013-03-14, 03:25
Here is the background for my request. In HBase, we use the following code to do clean up:
ZKUtil.deleteChildrenRecursively(watcher, acquiredZnode);
ZKUtil.deleteChildrenRecursively(watcher, reachedZnode);
ZKUtil.deleteChildrenRecursively(watcher, abortZnode); It would be nice if recursive deletion is supported so that we don't need to traverse all the children first.
Thanks
On Wed, Mar 13, 2013 at 8:22 PM, Marshall McMullen < [EMAIL PROTECTED]> wrote:
> No plans to add that at this point that I know of. Certainly haven't seen > any jira for this. > > > On Wed, Mar 13, 2013 at 4:54 PM, Ted Yu <[EMAIL PROTECTED]> wrote: > > > Hi, > > Currently multi() only supports single delete Op: > > > > public void testNestedCreate() throws Exception { > > > > multi(zk, Arrays.asList( > > > > /* Create */ > > > > Op.create("/multi", new byte[0], Ids.OPEN_ACL_UNSAFE, > > CreateMode.PERSISTENT), > > > > Op.create("/multi/a", new byte[0], Ids.OPEN_ACL_UNSAFE, > > CreateMode.PERSISTENT), > > > > Op.create("/multi/a/1", new byte[0], Ids.OPEN_ACL_UNSAFE, > > CreateMode.PERSISTENT), > > > > /* Delete */ > > > > Op.delete("/multi/a/1", 0), > > > > Op.delete("/multi/a", 0), > > > > Op.delete("/multi", 0) > > > > )); > > > > To obtain all the paths to be deleted, I need to traverse all the > children > > of the specified node. Is there plan to support recursive deletion in > multi > > so that I don't need to perform the traversal first ? > > > > > > Thanks > > >
-
Re: recursive delete in multi
Marshall McMullen 2013-03-14, 04:01
I agree, sounds like a good enhancement. And far safer and less race-condition prone too. Feel free to open a Jira on this as we don't have one on it yet. On Wed, Mar 13, 2013 at 9:25 PM, Ted Yu <[EMAIL PROTECTED]> wrote:
> Here is the background for my request. > In HBase, we use the following code to do clean up: > > ZKUtil.deleteChildrenRecursively(watcher, acquiredZnode); > > ZKUtil.deleteChildrenRecursively(watcher, reachedZnode); > > ZKUtil.deleteChildrenRecursively(watcher, abortZnode); > It would be nice if recursive deletion is supported so that we don't need > to traverse all the children first. > > Thanks > > On Wed, Mar 13, 2013 at 8:22 PM, Marshall McMullen < > [EMAIL PROTECTED]> wrote: > > > No plans to add that at this point that I know of. Certainly haven't seen > > any jira for this. > > > > > > On Wed, Mar 13, 2013 at 4:54 PM, Ted Yu <[EMAIL PROTECTED]> wrote: > > > > > Hi, > > > Currently multi() only supports single delete Op: > > > > > > public void testNestedCreate() throws Exception { > > > > > > multi(zk, Arrays.asList( > > > > > > /* Create */ > > > > > > Op.create("/multi", new byte[0], Ids.OPEN_ACL_UNSAFE, > > > CreateMode.PERSISTENT), > > > > > > Op.create("/multi/a", new byte[0], Ids.OPEN_ACL_UNSAFE, > > > CreateMode.PERSISTENT), > > > > > > Op.create("/multi/a/1", new byte[0], > Ids.OPEN_ACL_UNSAFE, > > > CreateMode.PERSISTENT), > > > > > > /* Delete */ > > > > > > Op.delete("/multi/a/1", 0), > > > > > > Op.delete("/multi/a", 0), > > > > > > Op.delete("/multi", 0) > > > > > > )); > > > > > > To obtain all the paths to be deleted, I need to traverse all the > > children > > > of the specified node. Is there plan to support recursive deletion in > > multi > > > so that I don't need to perform the traversal first ? > > > > > > > > > Thanks > > > > > >
-
Re: recursive delete in multi
Ted Yu 2013-03-14, 04:10
I logged ZOOKEEPER-1665
Cheers
On Wed, Mar 13, 2013 at 9:01 PM, Marshall McMullen < [EMAIL PROTECTED]> wrote:
> I agree, sounds like a good enhancement. And far safer and less > race-condition prone too. Feel free to open a Jira on this as we don't have > one on it yet. > > > On Wed, Mar 13, 2013 at 9:25 PM, Ted Yu <[EMAIL PROTECTED]> wrote: > > > Here is the background for my request. > > In HBase, we use the following code to do clean up: > > > > ZKUtil.deleteChildrenRecursively(watcher, acquiredZnode); > > > > ZKUtil.deleteChildrenRecursively(watcher, reachedZnode); > > > > ZKUtil.deleteChildrenRecursively(watcher, abortZnode); > > It would be nice if recursive deletion is supported so that we don't need > > to traverse all the children first. > > > > Thanks > > > > On Wed, Mar 13, 2013 at 8:22 PM, Marshall McMullen < > > [EMAIL PROTECTED]> wrote: > > > > > No plans to add that at this point that I know of. Certainly haven't > seen > > > any jira for this. > > > > > > > > > On Wed, Mar 13, 2013 at 4:54 PM, Ted Yu <[EMAIL PROTECTED]> wrote: > > > > > > > Hi, > > > > Currently multi() only supports single delete Op: > > > > > > > > public void testNestedCreate() throws Exception { > > > > > > > > multi(zk, Arrays.asList( > > > > > > > > /* Create */ > > > > > > > > Op.create("/multi", new byte[0], Ids.OPEN_ACL_UNSAFE, > > > > CreateMode.PERSISTENT), > > > > > > > > Op.create("/multi/a", new byte[0], > Ids.OPEN_ACL_UNSAFE, > > > > CreateMode.PERSISTENT), > > > > > > > > Op.create("/multi/a/1", new byte[0], > > Ids.OPEN_ACL_UNSAFE, > > > > CreateMode.PERSISTENT), > > > > > > > > /* Delete */ > > > > > > > > Op.delete("/multi/a/1", 0), > > > > > > > > Op.delete("/multi/a", 0), > > > > > > > > Op.delete("/multi", 0) > > > > > > > > )); > > > > > > > > To obtain all the paths to be deleted, I need to traverse all the > > > children > > > > of the specified node. Is there plan to support recursive deletion in > > > multi > > > > so that I don't need to perform the traversal first ? > > > > > > > > > > > > Thanks > > > > > > > > > >
|
|