You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2017/06/22 22:57:45 UTC
[26/50] [abbrv] helix git commit: Make more user friendly API change
Make more user friendly API change
Current API provide a map that returns resource to disabled partitions that combined in one String. Change to return a map that returns resource to list of disabled partitions.
Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/7038c78e
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/7038c78e
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/7038c78e
Branch: refs/heads/master
Commit: 7038c78eb5737f706621265bbba6a3bfe09c081f
Parents: c9216c4
Author: Junkai Xue <jx...@linkedin.com>
Authored: Thu Mar 30 15:45:26 2017 -0700
Committer: Junkai Xue <jx...@linkedin.com>
Committed: Thu Mar 30 15:50:36 2017 -0700
----------------------------------------------------------------------
.../controller/stages/ReadClusterDataStage.java | 2 +-
.../org/apache/helix/model/InstanceConfig.java | 24 ++++++++++++++++----
.../monitoring/mbeans/ClusterStatusMonitor.java | 10 ++++----
.../monitoring/mbeans/InstanceMonitor.java | 6 ++---
.../helix/manager/zk/TestZkHelixAdmin.java | 10 +++-----
5 files changed, 31 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/helix/blob/7038c78e/helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java b/helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
index 521d315..971d719 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/stages/ReadClusterDataStage.java
@@ -67,7 +67,7 @@ public class ReadClusterDataStage extends AbstractBaseStage {
Set<String> instanceSet = Sets.newHashSet();
Set<String> liveInstanceSet = Sets.newHashSet();
Set<String> disabledInstanceSet = Sets.newHashSet();
- Map<String, Map<String, String>> disabledPartitions = Maps.newHashMap();
+ Map<String, Map<String, List<String>>> disabledPartitions = Maps.newHashMap();
Map<String, Set<String>> tags = Maps.newHashMap();
Map<String, LiveInstance> liveInstanceMap = _cache.getLiveInstances();
for (Map.Entry<String, InstanceConfig> e : _cache.getInstanceConfigMap().entrySet()) {
http://git-wip-us.apache.org/repos/asf/helix/blob/7038c78e/helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java b/helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java
index 8dcd1ef..ce1d47e 100644
--- a/helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java
+++ b/helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java
@@ -317,13 +317,27 @@ public class InstanceConfig extends HelixProperty {
}
/**
- * Get a map that mapping resource name to disabled partitions
- * @return A map of resource name mapping to disabled partitions
- */
- public Map<String, String> getDisabledPartitionsMap() {
- return _record.getMapField(InstanceConfigProperty.HELIX_DISABLED_PARTITION.name());
+ * Get a map that mapping resource name to disabled partitions
+ * @return A map of resource name mapping to disabled partitions. If no
+ * resource/partitions disabled, return an empty map.
+ */
+ public Map<String, List<String>> getDisabledPartitionsMap() {
+ Map<String, String> disabledPartitionsRawMap =
+ _record.getMapField(InstanceConfigProperty.HELIX_DISABLED_PARTITION.name());
+ if (disabledPartitionsRawMap == null) {
+ return Collections.emptyMap();
+ }
+
+ Map<String, List<String>> disabledPartitionsMap = new HashMap<String, List<String>>();
+ for (String resourceName : disabledPartitionsRawMap.keySet()) {
+ disabledPartitionsMap.put(resourceName, getDisabledPartitions(resourceName));
+ }
+
+ return disabledPartitionsMap;
}
+
+
/**
* Set the enabled state for a partition on this instance across all the resources
*
http://git-wip-us.apache.org/repos/asf/helix/blob/7038c78e/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterStatusMonitor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterStatusMonitor.java b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterStatusMonitor.java
index 22d7209..468a0ce 100644
--- a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterStatusMonitor.java
+++ b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterStatusMonitor.java
@@ -75,7 +75,7 @@ public class ClusterStatusMonitor implements ClusterStatusMonitorMBean {
private Set<String> _liveInstances = Collections.emptySet();
private Set<String> _instances = Collections.emptySet();
private Set<String> _disabledInstances = Collections.emptySet();
- private Map<String, Map<String, String>> _disabledPartitions = Collections.emptyMap();
+ private Map<String, Map<String, List<String>>> _disabledPartitions = Collections.emptyMap();
private Map<String, Long> _instanceMsgQueueSizes = Maps.newConcurrentMap();
private final ConcurrentHashMap<String, ResourceMonitor> _resourceMbeanMap =
@@ -133,10 +133,10 @@ public class ClusterStatusMonitor implements ClusterStatusMonitorMBean {
@Override public long getDisabledPartitionsGauge() {
int numDisabled = 0;
- for (Map<String, String> perInstance : _disabledPartitions.values()) {
- for (String partitions : perInstance.values()) {
+ for (Map<String, List<String>> perInstance : _disabledPartitions.values()) {
+ for (List<String> partitions : perInstance.values()) {
if (partitions != null) {
- numDisabled += HelixUtil.deserializeByComma(partitions).size();
+ numDisabled += partitions.size();
}
}
}
@@ -200,7 +200,7 @@ public class ClusterStatusMonitor implements ClusterStatusMonitorMBean {
* @param tags a map of instance name to the set of tags on it
*/
public void setClusterInstanceStatus(Set<String> liveInstanceSet, Set<String> instanceSet,
- Set<String> disabledInstanceSet, Map<String, Map<String, String>> disabledPartitions,
+ Set<String> disabledInstanceSet, Map<String, Map<String, List<String>>> disabledPartitions,
Map<String, Set<String>> tags) {
// Unregister beans for instances that are no longer configured
Set<String> toUnregister = Sets.newHashSet(_instanceMbeanMap.keySet());
http://git-wip-us.apache.org/repos/asf/helix/blob/7038c78e/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitor.java b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitor.java
index 46d8a96..722303b 100644
--- a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitor.java
+++ b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/InstanceMonitor.java
@@ -119,7 +119,7 @@ public class InstanceMonitor implements InstanceMonitorMBean {
* @param isLive true if running, false otherwise
* @param isEnabled true if enabled, false if disabled
*/
- public synchronized void updateInstance(Set<String> tags, Map<String, String> disabledPartitions,
+ public synchronized void updateInstance(Set<String> tags, Map<String, List<String>> disabledPartitions,
boolean isLive, boolean isEnabled) {
if (tags == null || tags.isEmpty()) {
_tags = ImmutableList.of(ClusterStatusMonitor.DEFAULT_TAG);
@@ -129,9 +129,9 @@ public class InstanceMonitor implements InstanceMonitorMBean {
}
_disabledPartitions = 0L;
if (disabledPartitions != null) {
- for (String partitions : disabledPartitions.values()) {
+ for (List<String> partitions : disabledPartitions.values()) {
if (partitions != null) {
- _disabledPartitions += HelixUtil.deserializeByComma(partitions).size();
+ _disabledPartitions += partitions.size();
}
}
}
http://git-wip-us.apache.org/repos/asf/helix/blob/7038c78e/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
index bb1b079..a431171 100644
--- a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
+++ b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZkHelixAdmin.java
@@ -429,15 +429,11 @@ public class TestZkHelixAdmin extends ZkUnitTestBase {
Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "0").size(), 2);
Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "1").size(), 3);
- // Test enable partition across resources
- instanceConfig.setInstanceEnabledForPartition("2", true);
- Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "0").size(), 1);
- Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "1").size(), 2);
-
// Test disable partition across resources
+ // TODO : Remove this part once setInstanceEnabledForPartition(partition, enabled) is removed
instanceConfig.setInstanceEnabledForPartition("10", false);
- Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "0").size(), 2);
- Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "1").size(), 3);
+ Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "0").size(), 3);
+ Assert.assertEquals(instanceConfig.getDisabledPartitions(testResourcePrefix + "1").size(), 4);
}
@Test