[
https://issues.apache.org/jira/browse/HBASE-20182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16403278#comment-16403278
]
Duo Zhang commented on HBASE-20182:
-----------------------------------
For ConnectionImplementation I think scan more rows to find out the correct
one, but for 2.0 we also have async client, the region locator for async client
is not based on scanner, it just uses the async scan all method, so it is not
easy to do skip at client side.
So I think for 2.0+, we can introduce a special filter, which can filter out
the split region at server side. And for 1.x, we use your approach that skip
the split parent region and scan more rows to find out the correct one.
What do you think? [~stack]
Thanks.
> Can not locate region after split and merge
> -------------------------------------------
>
> Key: HBASE-20182
> URL: https://issues.apache.org/jira/browse/HBASE-20182
> Project: HBase
> Issue Type: Bug
> Components: Region Assignment
> Reporter: Duo Zhang
> Priority: Blocker
> Fix For: 2.0.0
>
> Attachments: HBASE-20182-UT.patch
>
>
> When implementing serial replication feature in HBASE-20046, I found that
> when splitting a region, we will not remove the parent region, instead we
> will mark it offline.
> And when locating a region, we will only scan one row so if we locate to the
> offlined region then we are dead.
> This will not happen for splitting, since one of the new daughter regions
> have the same start row with the parent region, and the timestamp is greater
> so when doing reverse scan we will always hit the daughter first.
> But if we also consider merge then bad things happen. Consider we have two
> regions A and B, we split B to C and D, and then merge A and C to E, then
> ideally the regions should be E and D, but actually the regions in meta will
> be E, B and D, and they all have different start rows. If you use a row
> within the range of old region C, then we will always locate to B and throw
> exception.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)