helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hu...@apache.org
Subject [helix] 43/44: Two minor improvements. 1) Avoid persisting null entry into CurrentStateOutput, 2) add addition info to CallbackProcess thread name to differeniate different threads.
Date Sat, 25 May 2019 01:20:17 GMT
This is an automated email from the ASF dual-hosted git repository.

hulee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git

commit 43b189a7db5333fba6f2a7e797ff482d9c9cf7de
Author: Lei Xia <lxia@linkedin.com>
AuthorDate: Fri May 17 09:17:33 2019 -0700

    Two minor improvements. 1) Avoid persisting null entry into CurrentStateOutput, 2) add
addition info to CallbackProcess thread name to differeniate different threads.
    
    RB=1670214
    G=helix-reviewers
    A=hulee
    
    Signed-off-by: Hunter Lee <hulee@linkedin.com>
---
 .../controller/stages/CurrentStateComputationStage.java    | 14 ++++++++++----
 .../java/org/apache/helix/manager/zk/CallbackHandler.java  |  3 ++-
 .../java/org/apache/helix/tools/TestHelixAdminCli.java     |  1 +
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
b/helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
index 0bf4d28..6115465 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
@@ -190,12 +190,18 @@ public class CurrentStateComputationStage extends AbstractBaseStage
{
         if (partition != null) {
           currentStateOutput.setCurrentState(resourceName, partition, instanceName,
               currentState.getState(partitionName));
-          currentStateOutput.setRequestedState(resourceName, partition, instanceName,
-              currentState.getRequestedState(partitionName));
-          currentStateOutput
-              .setInfo(resourceName, partition, instanceName, currentState.getInfo(partitionName));
           currentStateOutput.setEndTime(resourceName, partition, instanceName,
               currentState.getEndTime(partitionName));
+          String info = currentState.getInfo(partitionName);
+          // This is to avoid null value entries in the map, and reduce memory usage by avoiding
extra empty entries in the map.
+          if (info != null) {
+            currentStateOutput.setInfo(resourceName, partition, instanceName, info);
+          }
+          String requestState = currentState.getRequestedState(partitionName);
+          if (requestState != null) {
+            currentStateOutput
+                .setRequestedState(resourceName, partition, instanceName, requestState);
+          }
         }
       }
     }
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java b/helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java
index 713d214..969805e 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java
@@ -160,7 +160,8 @@ public class CallbackHandler implements IZkChildListener, IZkDataListener
{
     private CallbackHandler _handler;
 
     public CallbackProcessor(CallbackHandler handler) {
-      super(_manager.getClusterName(), "CallbackProcessor");
+      super(_manager.getClusterName(),
+          "CallbackProcessor@" + Integer.toHexString(handler.hashCode()));
       _handler = handler;
     }
 
diff --git a/helix-core/src/test/java/org/apache/helix/tools/TestHelixAdminCli.java b/helix-core/src/test/java/org/apache/helix/tools/TestHelixAdminCli.java
index d363b8d..420beba 100644
--- a/helix-core/src/test/java/org/apache/helix/tools/TestHelixAdminCli.java
+++ b/helix-core/src/test/java/org/apache/helix/tools/TestHelixAdminCli.java
@@ -282,6 +282,7 @@ public class TestHelixAdminCli extends ZkTestBase {
       Thread.sleep(200);
       leader = accessor.getProperty(accessor.keyBuilder().controllerLeader());
     }
+    Assert.assertNotNull(leader);
     Assert.assertTrue(leader.getInstanceName().startsWith("controller_900"));
 
     boolean verifyResult = ClusterStateVerifier


Mime
View raw message