hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7103) Need to fail split if SPLIT znode is deleted even before the split is completed.
Date Wed, 07 Nov 2012 01:58:12 GMT

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

Lars Hofhansl commented on HBASE-7103:
--------------------------------------

I have very limited knowledge in this area... From looking through the code briefly, if two
splits happen roughly the parallel the 2nd one will fail due to the split node already existing
(see SplitTransaction.createNodeSplitting), but I then it already wrote STARTED_SPLITTING
to its journal. Now the transaction is rolled back and will cleanup the ZK state.

So I guess we can either:
# track whether the split transaction failed because of a concurrent split, in that case we
won't clean the zk state.
# First try to create a ZK node, then write to the journal.

Both cases probably have bad side effects and races.
                
> Need to fail split if SPLIT znode is deleted even before the split is completed.
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-7103
>                 URL: https://issues.apache.org/jira/browse/HBASE-7103
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.94.3, 0.96.0
>
>
> This came up after the following mail in dev list
> 'infinite loop of RS_ZK_REGION_SPLIT on .94.2'.
> The following is the reason for the problem
> The following steps happen
> -> Initially the parent region P1 starts splitting.
> -> The split is going on normally.
> -> Another split starts at the same time for the same region P1. (Not sure why this
started).
> -> Rollback happens seeing an already existing node.
> -> This node gets deleted in rollback and nodeDeleted Event starts.
> -> In nodeDeleted event the RIT for the region P1 gets deleted.
> -> Because of this there is no region in RIT.
> -> Now the first split gets over.  Here the problem is we try to transit the node
to SPLITTING to SPLIT. But the node even does not exist.
> But we don take any action on this.  We think it is successful.
> -> Because of this SplitRegionHandler never gets invoked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message