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

Duo Zhang commented on HBASE-18066:
-----------------------------------

Yeah I know that we use this method to locate region in meta when we reverse 
scan had not been introduced yet.

My question is why we implement the function with two steps? I mean first get 
the row key and then use this row key to get the row. Is it only an 
implementation compromise? Or intentional?

Thanks.

> 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)` option.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to