[
https://issues.apache.org/jira/browse/HBASE-17576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sudeep Sunthankar updated HBASE-17576:
--------------------------------------
Attachment: HBASE-17576.HBASE-14850.v11.patch
Hi [~enis], Thanks for your feedback. The attached patch consists of the foll
changes
* As suggested, I removed the get() while getting region location and making an
async call as it was not asynchronous. But, on dong this the functions were
returning instantly and the lambdas were not satisfied. I suspect, the duration
in operation_timeout() in table.cc is not large enough and the call to get()
doesn't wait long enough.. To test this, I turned on the glog logging, and due
to the time taken for file i/o, the lambdas had some time to execute, but it
was still not big enough. So before inserting the lambdas, I'm calling
folly::Future::wait() and this ensures that the lambdas are executed. But, I'm
still skeptical whether this is the correct thing to do as we are waiting for
some 'x' amount of time in ms before the callbacks are executed. Need your
further guidance on that part.
* RawAsyncTable::Get() for multi requests now returns a
Future<vector<std::shared_ptr<Result>>>.
* action2promises_ in async-batch-rpc-retrying-caller.cc creates promises
during construction and when AsyncBatchRpcRetryingCaller::Call() returns, we
return those promises as a vector of futures.
* There was a regression in last couple of patches where ActionsByServer was
changed to std::map from std::unordered_map. Have fixed that as well in this
patch.
Thanks
> [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.v11.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)