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

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

- From a coding practice, this is not how we check preconditions: 
{code}
+  if (conn_) {
+    location_cache_ = conn_->location_cache();
+    rpc_client_ = conn_->rpc_client();
+    cpu_pool_ = conn_->cpu_executor();
+  } else {
+    throw std::runtime_error("Passed null AsyncConnection. Unexpected.");
+  }
{code}
You should use CHECK macros from glog like this: 
CHECK(conn_ != nullptr); 
- Same thing for the below line (and elsewhere as well): 
{code}
if ((nullptr == location_cache_) || (nullptr == rpc_client_) || (nullptr == 
cpu_pool_))
{code}

- It is fine to not fix the retries in this patch: 
{code}
// TODO This gives segfault @ present, when retried
{code}
Please do a follow up patch. I'll commit HBASE-17800 shortly which should help 
with this. 

- When formatting the code with bin/format-code.sh, it is interesting that your 
version of clang-format does it slightly differently. Are you running inside 
the docker env? Have you upgraded any of the LLVM toolchain? This constant 
change in formatting makes the patches harder to read. 
- Remove these commented out code (and others if there are any): 
{code}
+//#include "core/async-rpc-retrying-caller-factory.h"
{code}
{code}
+  const /*std::vector<TryResult>*/auto tresults = 
collectAll(*fresults.get()).get(
{code}
{code}
+  // typedef BatchCallerBuilder GenenericThisType;
{code}

- Simple client does not write test2 and testextra columns, why are you adding 
them to the list of gets: 
{code}
+  gets.push_back(std::make_shared<hbase::Get>(hbase::Get("test2")));
+  gets.push_back(std::make_shared<hbase::Get>(hbase::Get("testextra")));
{code}

- Result->DebugString() already prints out the Cell information, no? Why are 
you doing extra logging inside this if: 
{code}
+      if(!result->IsEmpty()) {
{code}

- No need for checking the exception type in table.cc: 
{code}
+      if 
(result.exception().is_compatible_with<hbase::RetriesExhaustedException>()) {
{code} 
We need to re-throw the exception to the application if any coming from one of 
the Get results. 

Will do more review in the next version. 

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

Reply via email to