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, 02 May 2013 02:37:14 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-v0.patch

Ok, finally I got around to this :)
Preliminary patch, it's more or less ready but w/o any tests, I will add some once general
approach is agreed upon.
I kept the nonce group-nonce distinction for future improvement if it were to come, however
with hashes, group is never used and never serialized.
The server-side code is forward-compatible with groups, though.

Added it to WAL replay, and it's replayed without regard to max store seqnums, only writeTime
is taken into account.
Some changes will have to be made for improved remote-WAL-replay that is coming... some decoration
on Increments and Appends to have them treated specially, so that some 2-hours-apart collision
doesn't fail log replay.

I will add tests tomorrow or later this week, feedback is appreciated.

> 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, HBASE-3787-v0.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

View raw message