hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4335) Splits can create temporary holes in .META. that confuse clients and regionservers
Date Thu, 29 Sep 2011 23:11:45 GMT

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

Lars Hofhansl commented on HBASE-4335:

I think when this is fixed we can mark HBASE-4333 and HBASE-4334 as dups.
@Joe, do you agree? Or do you think there is still merit in fixing the specific issues mentioned

> Splits can create temporary holes in .META. that confuse clients and regionservers
> ----------------------------------------------------------------------------------
>                 Key: HBASE-4335
>                 URL: https://issues.apache.org/jira/browse/HBASE-4335
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.90.4
>            Reporter: Joe Pallas
>            Assignee: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0
>         Attachments: 4335-v2.txt, 4335.txt
> When a SplitTransaction is performed, three updates are done to .META.:
> 1. The parent region is marked as splitting (and hence offline)
> 2. The first daughter region is added (same start key as parent)
> 3. The second daughter region is added (split key is start key)
> (later, the original parent region is deleted, but that's not important to this discussion)
> Steps 2 and 3 are actually done concurrently by SplitTransaction.DaughterOpener threads.
 While the master is notified when a split is complete, the only visibility that clients have
is whether the daughter regions have appeared in .META.
> If the second daughter is added to .META. first, then .META. will contain the (offline)
parent region followed by the second daughter region.  If the client looks up a key that is
greater than (or equal to) the split, the client will find the second daughter region and
use it.  If the key is less than the split key, the client will find the parent region and
see that it is offline, triggering a retry.
> If the first daughter is added to .META. before the second daughter, there is a window
during which .META. has a hole: the first daughter effectively hides the parent region (same
start key), but there is no entry for the second daughter.  A region lookup will find the
first daughter for all keys in the parent's range, but the first daughter does not include
keys at or beyond the split key.
> See HBASE-4333 and HBASE-4334 for details on how this causes problems and suggestions
for mitigating this in the client and regionserver.

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


View raw message