hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-3787) Increment is non-idempotent but client retries RPC
Date Wed, 13 Nov 2013 23:23:23 GMT

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

Nick Dimiduk commented on HBASE-3787:

I agree, this is a very important feature. I'd rather have it and fix any perf impact later
than let is get stale again.

This review is based on `interdiff v10 v11`, so please pardon any confused that comes about
from a rebase.

+    /** Dummy nonce generator for disabled nonces. */
+    private static class NoNonceGenerator implements NonceGenerator {
+      @Override
+      public long getNonceGroup() {
+        return HConstants.NO_NONCE;
+      }
+      @Override
+      public long newNonce() {
+        return HConstants.NO_NONCE;
+      }
+    }

Love it. This is a great way to abstract this component.

+import java.sql.Date;
+import java.text.SimpleDateFormat;

Did you mean {java.util.Date} ?

TestRunnable is excellent.


> 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: Blocker
>         Attachments: HBASE-3787-partial.patch, HBASE-3787-v0.patch, HBASE-3787-v1.patch,
HBASE-3787-v10.patch, HBASE-3787-v11.patch, HBASE-3787-v2.patch, HBASE-3787-v3.patch, HBASE-3787-v4.patch,
HBASE-3787-v5.patch, HBASE-3787-v5.patch, HBASE-3787-v6.patch, HBASE-3787-v7.patch, HBASE-3787-v8.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 was sent by Atlassian JIRA

View raw message