[ 
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

Reply via email to