[ 
https://issues.apache.org/jira/browse/HBASE-1671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-1671:
-------------------------

    Attachment: 1671-v3.patch

Posting patch for J-D review.

Here's the story.

Previous, splitting, we would not close the region until all outstanding 
scanners were done.

Philosophy is not to wait any more. HBASE-1609 did some of that work undoing 
waits on scanner leases.

Remaining was how to deal with case where region split undering an outstanding 
scanner.  As per above, we punted dealing with this in past.

This patch moves handling the scanner across region splits to the client.

First, server-side, if a next is called on a region the regionserver has since 
closed, we now return a NSRE (and close out the scanner that was).

Client-side, its kinda ugly because ScannerCallable is in the way.  On one hand 
we want the retrying but only sometimes.  We don't want to retry an NSRE on a 
next.  A NSRE inside in a scanner next will never recover.  Whats wanted is a 
scanner reset where scanner goes and figures new location of region.  Location 
figuring only happens inside in scanner open so we need to reopen scanner.

We can't reset down in ScannerCallable.  Reset has to happen higher up where 
there is more context inside in the ClientScanner#next.

So we have ugly mechanism for sending a signal from ScannerCallable up to 
ClientScanner#next using a DoRetryException caused by a NSRE.

Once the scanner has been reset, we need to discard first row since we've 
already returned this.





> HBASE-1609 broke scanners riding across splits
> ----------------------------------------------
>
>                 Key: HBASE-1671
>                 URL: https://issues.apache.org/jira/browse/HBASE-1671
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: stack
>             Fix For: 0.20.0
>
>         Attachments: 1671-v2.patch, 1671-v3.patch, 1671.patch
>
>
> On split, we close region and close out scanner leases.  Scanners coming in 
> get USEs instead of NSREs.  Fix.  Broke by hbase-1609.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to