hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5974) Scanner retry behavior with RPC timeout on next() seems incorrect
Date Tue, 22 May 2012 04:31:42 GMT

    [ 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

        

Mime
View raw message