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

Anoop Sam John commented on HBASE-5974:
---------------------------------------

Thanks for the review Todd
{quote}
why do we need the new RegionScannerWithCookie class? why not add the cookie to 
RegionScanner itself? 
{quote}
I was also thinking initially in this way. There are 2 reasons why I have 
avoided to do the seqNo work within the RegionScanner 
1. In case of the caching>1 there will be more than one call to the 
RegionScanner.next(). U mean passing the client sent seqNo ( I am avoiding 
cookie as I agree with you to rename this ) to the RegionScanner which will 
change the interface. This is exposed
2. This is the main reason. With the CP usage we have exposed the RegionScanner 
and using the preScannerOpen() and postScannerOpen() impls user can now return 
his own RegionScanner impl. If we do this seqNo maintain and check logics in 
RegionScanner this will make the user to worry abt these? I feel this should be 
handled by HBase core code.  What do u say?

{quote}
this isn't currently compatible with 0.94, since a new client wouldn't be able 
to scan an old server.
{quote}
Agree.. I can fix this
{quote}
let's rename "cookie" to "callSequenceNumber" 
{quote}
Already agreed.. :) 
{quote}
In the test, I think you should use HRegionInterface directly, so you don't 
have to actually generate an RPC timeout.
{quote}
I thought of an E2E FT case.. Yes as u said the other one also I can write. So 
what is your recommendation? Should I change?
{quote}
 As is, I think it's also not guaranteed to trigger the issue unless you set 
scanner caching to 1, right? 
{quote}
May be in that case I can explicitly set the caching=1 for this test case. I 
can do that
                
> Scanner retry behavior with RPC timeout on next() seems incorrect
> -----------------------------------------------------------------
>
>                 Key: HBASE-5974
>                 URL: https://issues.apache.org/jira/browse/HBASE-5974
>             Project: HBase
>          Issue Type: Bug
>          Components: client, regionserver
>    Affects Versions: 0.90.7, 0.92.1, 0.94.0, 0.96.0
>            Reporter: Todd Lipcon
>            Priority: Critical
>         Attachments: HBASE-5974_0.94.patch
>
>
> I'm seeing the following behavior:
> - set RPC timeout to a short value
> - call next() for some batch of rows, big enough so the client times out 
> before the result is returned
> - the HConnectionManager stuff will retry the next() call to the same server. 
> At this point, one of two things can happen: 1) the previous next() call will 
> still be processing, in which case you get a LeaseException, because it was 
> removed from the map during the processing, or 2) the next() call will 
> succeed but skip the prior batch of rows.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to