hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Shelukhin (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-3787) Increment is non-idempotent but client retries RPC
Date Thu, 11 Apr 2013 20:37:17 GMT

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

Sergey Shelukhin updated HBASE-3787:
------------------------------------

    Attachment: HBASE-3787-partial.patch

Here's a partial patch for an example. The nonce manager on server side is not implemented
but operations are clear. 
WAL replay is not there, and it's going to be tricky (for any nonce scheme). We only replay
WAL that is not already in store, and nonces will not be in store, so the state of the nonce
cannot be reliably restored with regular WAL replay. It is especially interesting for new
remote request based faster log replay, haven't checked yet how it works. Not yet exactly
sure what to do about it without incurring too much overhead.
I don't think not retrying to different server from client is a solution, too. If we don't
retry when this problem arises what is the user supposed to do, how do they know if increment
happened? They will probably retry too and get into the same situation.
I wonder if we should have some system CFs for nonces almost...
                
> Increment is non-idempotent but client retries RPC
> --------------------------------------------------
>
>                 Key: HBASE-3787
>                 URL: https://issues.apache.org/jira/browse/HBASE-3787
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 0.94.4, 0.95.2
>            Reporter: dhruba borthakur
>            Assignee: Sergey Shelukhin
>            Priority: Critical
>             Fix For: 0.95.1
>
>         Attachments: HBASE-3787-partial.patch
>
>
> The HTable.increment() operation is non-idempotent. The client retries the increment
RPC a few times (as specified by configuration) before throwing an error to the application.
This makes it possible that the same increment call be applied twice at the server.
> For increment operations, is it better to use HConnectionManager.getRegionServerWithoutRetries()?
Another  option would be to enhance the IPC module to make the RPC server correctly identify
if the RPC is a retry attempt and handle accordingly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message