hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17576) [C++] Implement request retry mechanism over RPC for Multi calls.
Date Wed, 03 May 2017 22:15:04 GMT

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

Enis Soztutar commented on HBASE-17576:
---------------------------------------

Thanks Sudeep. 

- Remove this: 
+  std::vector<std::shared_ptr<hbase::Result>> GetTest(
- Table::Get() should not be taking shared_ptr's of Gets: 
{code}
+  std::vector<std::shared_ptr<hbase::Result>> Get(
+      const std::vector<std::shared_ptr<hbase::Get>> &gets);
{code}
Instead the signature should be something like: 
{code}
+  std::vector<std::shared_ptr<hbase::Result>> Get(
+      const std::vector<hbase::Get> &gets);
{code}

- Undo this change: 
{code}
-      LOG(INFO) << result->DebugString();
+      ;  // LOG(INFO) << result->DebugString();
{code} 

- Your use of {{Future<MultiResult>}} which is {{std::unique_ptr<std::vector<Future<std::shared_ptr<Result>>>}}
is not correct. 
{code}
+Future<MultiResult> AsyncBatchRpcRetryingCaller::Call() {
{code}
First, the vector of Futures from the vector of promises, should really be filled in the constructor
or something. Further there is no place that you explicitly fill in the {{action2promises_}}
map, which gets filled only when OnComplete() or OnError() gets called asynchronously. However,
the Futures that you are trying to create will be obtained from an empty map, because by the
time Call() is called, none of the RPC's are guaranteed to be sent. Not sure how this even
works right now. 
Second, you do not need to return a Future of Futures. If you notice, in Call() you are just
creating a Promise, and immediately filling it, which is completely unnecessary. You should
instead return a vector of Future<shared_ptr<Result>> references from Caller::Call(),
and RawAsyncTable::Batch, etc. 




> [C++] Implement request retry mechanism over RPC for Multi calls.
> -----------------------------------------------------------------
>
>                 Key: HBASE-17576
>                 URL: https://issues.apache.org/jira/browse/HBASE-17576
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Sudeep Sunthankar
>            Assignee: Sudeep Sunthankar
>         Attachments: HBASE-17576.HBASE-14850.v10.patch, HBASE-17576.HBASE-14850.v1.patch,
HBASE-17576.HBASE-14850.v2.patch, HBASE-17576.HBASE-14850.v3.patch, HBASE-17576.HBASE-14850.v4.patch,
HBASE-17576.HBASE-14850.v5.patch, HBASE-17576.HBASE-14850.v6.patch, HBASE-17576.HBASE-14850.v7.patch,
HBASE-17576.HBASE-14850.v8.patch, HBASE-17576.HBASE-14850.v9.patch
>
>
> This work is based on top of HBASE-17465. Multi Calls will be based on this.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message