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)