hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5974) Scanner retry behavior with RPC timeout on next() seems incorrect
Date Sun, 20 May 2012 07:26:41 GMT

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

Todd Lipcon commented on HBASE-5974:
------------------------------------

- style: use 2-space indentation, not tabs
- why do we need the new RegionScannerWithCookie class? why not add the cookie to RegionScanner
itself? I'd also move the cookie check into a function "scanner.checkAndIncrementCookie(cookie);"
- let's rename "cookie" to "callSequenceNumber" or something -- since in this implementation
it is a simple increasing sequence.
- this isn't currently compatible with 0.94, since a new client wouldn't be able to scan an
old server. In order to make it compatible, we'd need to catch the MethodNotExists exception
and set a flag in the client which disables cookie usage for that cluster.
- In the test, I think you should use HRegionInterface directly, so you don't have to actually
generate an RPC timeout. As is, I think it's also not guaranteed to trigger the issue unless
you set scanner caching to 1, right? I guess that's the default, but if we ever change the
default, it would invalidate this test.

                
> 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