[
https://issues.apache.org/jira/browse/HBASE-3787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13657534#comment-13657534
]
stack commented on HBASE-3787:
------------------------------
[~sershe] Duh. I should have caught that in review if I was any good. Agree a
nonce WAL is OTT. Been trying to think through this and chatted some w/
Elliott but it is a thorny issue.
Nonce should be a primitive in our rpc -- all you should have to do is say if
it an idempotent or not.
Would a nonce having a 'mint' time -- the time of creation help? If nonce is N
ms old -- server could do relative time? -- then we fail the operation.
Does nonce have to have a destination server stamped on it? It is only good
for a particular server and if it shows up on another server because region
moved, again we fail the op.
Elliott was talking about a region not moving till outstanding requests are
handled and no new ones are accepted in the meantime (We then went off into the
weeds where the region that is closing could still take reads... and even more
extreme... we could open the region in the new location and it could take
writes... just not reads..... We stopped before going any further because we
thought you'd just slap us).
> 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,
> HBASE-3787-v1.patch, HBASE-3787-v2.patch, HBASE-3787-v3.patch,
> HBASE-3787-v4.patch, HBASE-3787-v5.patch, HBASE-3787-v5.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