hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "bharath v (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11405) Multiple invocations of hbck in parallel disables balancer permanently
Date Wed, 25 Jun 2014 18:40:26 GMT

    [ https://issues.apache.org/jira/browse/HBASE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043896#comment-14043896

bharath v commented on HBASE-11405:

- Thanks for the +1s. I was thinking of writing a patch which creates an ephemeral znode /hbase/hbck-in-progress
while starting hbck and deletes it while exiting. If a new hbck instance sees already existing
znode, it aborts. However [~mbertozzi] says it is not a good approach to directly deal with
ZK connections as the internal implementations might change breaking this feature and also
since we are trying to remove ZK dependency (via other JIRAs) on HBase, implementations like
this might make that transition difficult. So, In future when we have a lock() based system,
each hbck should probably request a lock from master and the other hbcks should wait on it.

- Feel free to suggest any other approaches you have in mind.

> Multiple invocations of hbck in parallel disables balancer permanently 
> -----------------------------------------------------------------------
>                 Key: HBASE-11405
>                 URL: https://issues.apache.org/jira/browse/HBASE-11405
>             Project: HBase
>          Issue Type: Bug
>          Components: Balancer, hbck
>    Affects Versions: 0.99.0
>            Reporter: bharath v
> This is because of the following piece of code in hbck
> {code:borderStyle=solid}
>   boolean oldBalancer = admin.setBalancerRunning(false, true);
>     try {
>       onlineConsistencyRepair();
>     }
>     finally {
>       admin.setBalancerRunning(oldBalancer, false);
>     }
> {code}
> Newer invocations set oldBalancer to false as it was disabled by previous invocations
and this disables balancer permanently unless its manually turned on by the user. Easy to
reproduce, just run hbck 100 times in a loop in 2 different sessions and you can see that
balancer is set to false in the HMaster logs.

This message was sent by Atlassian JIRA

View raw message