[ 
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)

Reply via email to