You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2017/02/15 02:30:41 UTC

[jira] [Commented] (HBASE-17576) [C++] Implement request retry mechanism over RPC for Multi calls.

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

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

Thanks Sudeep for the patches. 
In v2 patch, you don't have row.h, and in v3 action.h. But I think I can follow those for now, no big deal. 
 - Row class should implement the virtual {{Row()}} default method. Then you don't need casting here: 
{code}
+      if (const auto &pget = std::dynamic_pointer_cast<Get>(action->GetAction())) {
+        row = pget->Row();
+      }
{code}
Also multi-Puts will also use this multi-call path. 
- {{HRegionInfo / HRegionLocation}} -> we have been using the region-location.cc and {{pb::RegionInfo}} for this. Are they not enough? If needed we can do the wrappers on top of the pb::RegionInfo / ServerName, etc but please we have to merge these with existing stuff. 
- AbstractResponse -> Not sure why we need this. Multi request always returns multi response. I think you can remove this. 
- +++ b/hbase-native-client/core/async-rpc-retrying-batch-caller-factory.h -> This should instead go to the async-rpc-retrying-caller-factory.cc coming in HBASE-17465. Instead of the Builder having a reference to the factory, it should be that Factory creates and returns a Builder in {{Batch()}} method, and the Builder then builds the {{AsyncRpcRetryingBatchCaller}}. Also {{Call()}} method should look like: 
{code}
+            folly::Future<RESP> Call()
+            {
+              return Build()->Call();
+            }
{code}
You can take a look at HBASE-17465, and put the BatchCallerBuilder inside the async-rpc-retrying-caller-factory. and return that builder in Batch() call. The factory will have Single() and Batch() methods to construct the builders. 

To be continued. 


> [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.v1.patch, HBASE-17576.HBASE-14850.v2.patch, HBASE-17576.HBASE-14850.v3.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)