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