hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4880) Region is on service before completing openRegionHanlder, may cause data loss
Date Tue, 06 Dec 2011 01:49:39 GMT

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

ramkrishna.s.vasudevan commented on HBASE-4880:
-----------------------------------------------

I am ok with the change.  What if we add the region to online region only after we are sure
that META update is successful.  
Chenhui, feels the change will be bigger if we do like that.  If others are ok with the change
then I am +1 on it.

                
> Region is on service before completing openRegionHanlder, may cause data loss
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-4880
>                 URL: https://issues.apache.org/jira/browse/HBASE-4880
>             Project: HBase
>          Issue Type: Bug
>            Reporter: chunhui shen
>            Assignee: chunhui shen
>         Attachments: hbase-4880.patch
>
>
> OpenRegionHandler in regionserver is processed as the following steps:
> {code}
> 1.openregion()(Through it, closed = false, closing = false)
> 2.addToOnlineRegions(region)
> 3.update .meta. table 
> 4.update ZK's node state to RS_ZK_REGION_OPEND
> {code}
> We can find that region is on service before Step 4.
> It means client could put data to this region after step 3.
> What will happen if step 4 is failed processing?
> It will execute OpenRegionHandler#cleanupFailedOpen which will do closing region, and
master assign this region to another regionserver.
> If closing region is failed, the data which is put between step 3 and step 4 may loss,
because the region has been opend on another regionserver and be put new data. Therefore,
it may not be recoverd through replayRecoveredEdit() because the edit's LogSeqId is smaller
than current region SeqId.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message