[ 
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]? 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