[
https://issues.apache.org/jira/browse/HBASE-7847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13949313#comment-13949313
]
Rakesh R commented on HBASE-7847:
---------------------------------
Hi [~stack]
{quote}
Any chance of your trying multi ON against a zk ensemble that does not support
multi (after changing it so the default is that we fall back to one-by-one if
multi is not availble) to make sure all still works and you don't get an
exception you were not expecting?
{quote}
Say, if user tries to perform multi api 'hbase.zookeeper.useMulti=true' with
older ZK version 3.3, looks like zkclient will get hanged. Kindly look at the
issue ZOOKEEPER-1495 for more information, this issue is resolved only on 3.4
branch.
Secondly, the new proposed api internally uses the existing
ZKUtil#multiOrSequential() api to perform the delete operation. Here in
ZKUtil#multiOrSequential() I could see, it would retry with sequential
execution if any of the following exception occured. Other than these it will
throw out the exception to the user.
- NODEEXISTS
- NONODE
- BADVERSION
- NOAUTH
In javadoc, I had mentioned the following exceptions:
{code}
* @throws KeeperException.NotEmptyException if node has children while
deleting
* @throws KeeperException if unexpected ZooKeeper exception
{code}
Ah, I missed one case, IllegalArgumentException - if an invalid path is
specified. I'll include this too in javadoc section.
Does this sound good to you ?
> Use zookeeper multi to clear znodes
> -----------------------------------
>
> Key: HBASE-7847
> URL: https://issues.apache.org/jira/browse/HBASE-7847
> Project: HBase
> Issue Type: Sub-task
> Reporter: Ted Yu
> Assignee: Rakesh R
> Attachments: 7847-v1.txt, 7847_v6.patch, 7847_v6.patch,
> HBASE-7847.patch, HBASE-7847.patch, HBASE-7847.patch, HBASE-7847_v4.patch,
> HBASE-7847_v5.patch, HBASE-7847_v6.patch
>
>
> In ZKProcedureUtil, clearChildZNodes() and clearZNodes(String procedureName)
> should utilize zookeeper multi so that they're atomic
--
This message was sent by Atlassian JIRA
(v6.2#6252)