hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Duo Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18066) Get with closest_row_before on "hbase:meta" can return empty Cell during region merge/split
Date Fri, 19 May 2017 13:48:04 GMT

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

Duo Zhang commented on HBASE-18066:

OK, seems not related to the scan optimization I've done in 1.3. I used to think that in 1.x
we use reverse scan to implement getClosestRowBefore, but seems it goes into a completely
different path.

[~openinx] I do not fully understand your comments but I think the problem is what you have
pointed out, we implement getClosestRowBefore with 2 steps

1. Get the closest row key.
2. Use this row key to get the final result.

Yeah we do not record any mvcc value here so it is possible that we delete the row between
step 1 and step 2 so you get a strange empty result.

But I do not think this problem is 1.3 only? Do you only observe this problem in 1.3.x [~timoha]?

> Get with closest_row_before on "hbase:meta" can return empty Cell during region merge/split
> -------------------------------------------------------------------------------------------
>                 Key: HBASE-18066
>                 URL: https://issues.apache.org/jira/browse/HBASE-18066
>             Project: HBase
>          Issue Type: Bug
>          Components: hbase, regionserver
>    Affects Versions: 1.3.1
>         Environment: Linux (16.04.2), MacOS 10.11.6.
> Standalone and distributed HBase setup.
>            Reporter: Andrey Elenskiy
>         Attachments: TestGetWithClosestRowBeforeWhenSplit.java
> During region split/merge there's a brief period of time where doing a "Get" with "closest_row_before=true"
on "hbase:meta" may return empty "GetResponse.result.cell" field even though parent, splitA
and splitB regions are all in "hbase:meta". Both gohbase (https://github.com/tsuna/gohbase)
and AsyncHBase (https://github.com/OpenTSDB/asynchbase) interprets this as "TableDoesNotExist",
which is returned to the client.
> Here's a gist that reproduces this problem: https://gist.github.com/Timoha/c7a236b768be9220e85e53e1ca53bf96.
Note that you have to use older HTable client (I used 1.2.4) as current versions ignore `Get.setClosestRowBefore(bool)`

This message was sent by Atlassian JIRA

View raw message