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/07/10 22:02:00 UTC

[jira] [Commented] (HBASE-18061) [C++] Fix retry logic in multi-get calls

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

Enis Soztutar commented on HBASE-18061:
---------------------------------------

Thanks Sudeep for the updated patch. 
Can you please clean up this part: 
{code}
             if (search != actions_by_server.end()) {
+              // Multiple regions might be hosted on the same server (ServerName)
+              // Check if a Region is already present in the map or not. If not add it
+              // auto actions_by_region_name = search->second->actions_by_region();
+              auto itr = search->second->actions_by_region().find(region_loc->region_name());
+              if (itr != search->second->actions_by_region().end()) {
                 search->second->AddActionsByRegion(region_loc, action);
               } else {
-              // Create new key
+                // Create new key for the region location region_loc
+                search->second = std::make_shared<ServerRequest>(region_loc);
+                search->second->AddActionsByRegion(region_loc, action);
+                // search->second = server_request;
+              }
+            } else {
+              // Create new key for this ServerName
{code} 

- Can you also cleap up the VLOG's a little bit. We can use VLOG(5) for very excessive stuff, VLOG(1) for most of the exceptions, and anything in between. VLOG(8) is too much. 
- Please remove all commented out code like this: 
{code}
+//#include "connection/request.h"
..
//LOG(INFO) << "tresults size :- " << tresults.size();
{code}
- Did you run bin/format-code.sh and make lint ? 
- remove these: 
{code}
//TODO This shouldn't be in THROW, but we are getting incorrect RL's at the moment
{code}
Some of these tests were expected to fail, no? 
- You need to enable this test? 
{code}
+TEST_F(AsyncBatchRpcRetryTest, TestFailWithException) {
+  std::shared_ptr<AsyncRegionLocatorBase> region_locator(
+      std::make_shared<MockWrongRegionAsyncRegionLocator>(5));
+  EXPECT_ANY_THROW(runMultiTest(region_locator, "table3"));
+  //TODO will be in EXPECT_ANY_THROW
+  // Not failing.
+  //runMultiTest(region_locator, "table3");
+}
{code}
- Undo this: 
{code}
-    test_util->StartMiniCluster(2);
+    test_util->StartMiniCluster(10);
{code}
- Please go over the patch again, and make sure that there is no commented-out code lying around. 
- This test is good {{+TEST_F(ClientTest, MultiGetsWithRegionSplits)}}, but there is a lot of code duplication. Maybe move the logic to a method, and call it from the MutlGets and MultiGetsWithRegionSplits tests. 


> [C++] Fix retry logic in multi-get calls
> ----------------------------------------
>
>                 Key: HBASE-18061
>                 URL: https://issues.apache.org/jira/browse/HBASE-18061
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Enis Soztutar
>            Assignee: Sudeep Sunthankar
>             Fix For: HBASE-14850
>
>         Attachments: HBASE-18061.HBASE-14850.v1.patch, HBASE-18061.HBASE-14850.v3.patch, HBASE-18061.HBASE-14850.v5.patch
>
>
> HBASE-17576 adds multi-gets. There are a couple of todos to fix in the retry logic, and some unit testing to be done for the multi-gets. We'll do these in this issue. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)