You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by zz...@apache.org on 2013/08/16 01:22:09 UTC
[1/2] HELIX-166: Rename modes to auto, semi-auto, and custom, rb=13444
Updated Branches:
refs/heads/master f38b3da29 -> 13d19e914
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java b/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
index 89b02ad..120ab94 100644
--- a/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
+++ b/helix-core/src/test/java/org/apache/helix/model/TestIdealState.java
@@ -23,10 +23,11 @@ import java.util.*;
import org.apache.helix.TestHelper;
import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.testng.Assert;
import org.testng.annotations.Test;
-
+@SuppressWarnings("deprecation")
public class TestIdealState
{
@Test
@@ -46,8 +47,8 @@ public class TestIdealState
instanceState.put("node_4", "SLAVE");
idealState.getRecord().setMapField("TestDB_1", instanceState);
- // test AUTO mode
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ // test SEMI_AUTO mode
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
Set<String> instances = idealState.getInstanceSet("TestDB_0");
// System.out.println("instances: " + instances);
Assert.assertEquals(instances.size(), 2, "Should contain node_1 and node_2");
@@ -58,7 +59,7 @@ public class TestIdealState
Assert.assertEquals(instances, Collections.emptySet(), "Should get empty set");
// test CUSTOMIZED mode
- idealState.setIdealStateMode(IdealStateModeProperty.CUSTOMIZED.toString());
+ idealState.setRebalanceMode(RebalanceMode.CUSTOMIZED);
instances = idealState.getInstanceSet("TestDB_1");
// System.out.println("instances: " + instances);
Assert.assertEquals(instances.size(), 2, "Should contain node_3 and node_4");
@@ -74,21 +75,59 @@ public class TestIdealState
@Test
public void testReplicas() {
- IdealState idealState = new IdealState("test-db");
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
- idealState.setNumPartitions(4);
- idealState.setStateModelDefRef("MasterSlave");
+ IdealState idealState = new IdealState("test-db");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
+ idealState.setNumPartitions(4);
+ idealState.setStateModelDefRef("MasterSlave");
+
+ idealState.setReplicas("" + 2);
+
+ List<String> preferenceList = new ArrayList<String>();
+ preferenceList.add("node_0");
+ idealState.getRecord().setListField("test-db_0", preferenceList);
+ Assert.assertFalse(idealState.isValid(), "should fail since replicas not equals to preference-list size");
+
+ preferenceList.add("node_1");
+ idealState.getRecord().setListField("test-db_0", preferenceList);
+ Assert.assertTrue(idealState.isValid(), "should pass since replicas equals to preference-list size");
+ }
+
+ @Test
+ public void testFullAutoModeCompatibility() {
+ IdealState idealStateOld = new IdealState("old-test-db");
+ idealStateOld.setIdealStateMode(IdealStateModeProperty.AUTO_REBALANCE.toString());
+ Assert.assertEquals(idealStateOld.getRebalanceMode(), RebalanceMode.FULL_AUTO);
+ Assert.assertEquals(idealStateOld.getIdealStateMode(), IdealStateModeProperty.AUTO_REBALANCE);
+
+ IdealState idealStateNew = new IdealState("new-test-db");
+ idealStateNew.setRebalanceMode(RebalanceMode.FULL_AUTO);
+ Assert.assertEquals(idealStateNew.getIdealStateMode(), IdealStateModeProperty.AUTO_REBALANCE);
+ Assert.assertEquals(idealStateNew.getRebalanceMode(), RebalanceMode.FULL_AUTO);
+ }
- idealState.setReplicas("" + 2);
+ @Test
+ public void testSemiAutoModeCompatibility() {
+ IdealState idealStateOld = new IdealState("old-test-db");
+ idealStateOld.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ Assert.assertEquals(idealStateOld.getRebalanceMode(), RebalanceMode.SEMI_AUTO);
+ Assert.assertEquals(idealStateOld.getIdealStateMode(), IdealStateModeProperty.AUTO);
- List<String> preferenceList = new ArrayList<String>();
- preferenceList.add("node_0");
- idealState.getRecord().setListField("test-db_0", preferenceList);
- Assert.assertFalse(idealState.isValid(), "should fail since replicas not equals to preference-list size");
+ IdealState idealStateNew = new IdealState("new-test-db");
+ idealStateNew.setRebalanceMode(RebalanceMode.SEMI_AUTO);
+ Assert.assertEquals(idealStateNew.getIdealStateMode(), IdealStateModeProperty.AUTO);
+ Assert.assertEquals(idealStateNew.getRebalanceMode(), RebalanceMode.SEMI_AUTO);
+ }
- preferenceList.add("node_1");
- idealState.getRecord().setListField("test-db_0", preferenceList);
- Assert.assertTrue(idealState.isValid(), "should pass since replicas equals to preference-list size");
+ @Test
+ public void testCustomizedModeCompatibility() {
+ IdealState idealStateOld = new IdealState("old-test-db");
+ idealStateOld.setIdealStateMode(IdealStateModeProperty.CUSTOMIZED.toString());
+ Assert.assertEquals(idealStateOld.getRebalanceMode(), RebalanceMode.CUSTOMIZED);
+ Assert.assertEquals(idealStateOld.getIdealStateMode(), IdealStateModeProperty.CUSTOMIZED);
+ IdealState idealStateNew = new IdealState("new-test-db");
+ idealStateNew.setRebalanceMode(RebalanceMode.CUSTOMIZED);
+ Assert.assertEquals(idealStateNew.getIdealStateMode(), IdealStateModeProperty.CUSTOMIZED);
+ Assert.assertEquals(idealStateNew.getRebalanceMode(), RebalanceMode.CUSTOMIZED);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/model/builder/TestIdealStateBuilder.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/model/builder/TestIdealStateBuilder.java b/helix-core/src/test/java/org/apache/helix/model/builder/TestIdealStateBuilder.java
index cdb7867..1b5ba63 100644
--- a/helix-core/src/test/java/org/apache/helix/model/builder/TestIdealStateBuilder.java
+++ b/helix-core/src/test/java/org/apache/helix/model/builder/TestIdealStateBuilder.java
@@ -40,8 +40,9 @@ public class TestIdealStateBuilder {
Assert.fail("fail to build an auto mode ideal-state.", e);
}
// System.out.println("ideal-state: " + idealState);
- Assert.assertEquals(idealState.getIdealStateMode(), IdealState.IdealStateModeProperty.AUTO,
- "ideal-state mode should be auto");
+ Assert.assertEquals(idealState.getRebalanceMode(),
+ IdealState.RebalanceMode.SEMI_AUTO,
+ "rebalancer mode should be semi-auto");
}
@Test
@@ -60,8 +61,9 @@ public class TestIdealStateBuilder {
Assert.fail("fail to build an auto-rebalance mode ideal-state.", e);
}
// System.out.println("ideal-state: " + idealState);
- Assert.assertEquals(idealState.getIdealStateMode(), IdealState.IdealStateModeProperty.AUTO_REBALANCE,
- "ideal-state mode should be auto-rebalance");
+ Assert.assertEquals(idealState.getRebalanceMode(),
+ IdealState.RebalanceMode.FULL_AUTO,
+ "rebalancer mode should be auto");
}
@@ -83,8 +85,9 @@ public class TestIdealStateBuilder {
Assert.fail("fail to build a custom mode ideal-state.", e);
}
// System.out.println("ideal-state: " + idealState);
- Assert.assertEquals(idealState.getIdealStateMode(), IdealState.IdealStateModeProperty.CUSTOMIZED,
- "ideal-state mode should be customized");
+ Assert.assertEquals(idealState.getRebalanceMode(),
+ IdealState.RebalanceMode.CUSTOMIZED,
+ "rebalancer mode should be customized");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/recipes/distributed-lock-manager/README.md
----------------------------------------------------------------------
diff --git a/recipes/distributed-lock-manager/README.md b/recipes/distributed-lock-manager/README.md
index fdba382..f3b2fbe 100644
--- a/recipes/distributed-lock-manager/README.md
+++ b/recipes/distributed-lock-manager/README.md
@@ -137,7 +137,7 @@ This provides more details on how to setup the cluster and where to plugin appli
Create a lock group and specify the number of locks in the lock group.
```
-./helix-admin --zkSvr localhost:2199 --addResource lock-manager-demo lock-group 6 OnlineOffline AUTO_REBALANCE
+./helix-admin --zkSvr localhost:2199 --addResource lock-manager-demo lock-group 6 OnlineOffline FULL_AUTO
```
##### Start the nodes
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java
----------------------------------------------------------------------
diff --git a/recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java b/recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java
index 11cfdaf..ac08274 100644
--- a/recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java
+++ b/recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java
@@ -32,8 +32,8 @@ import org.apache.helix.HelixManager;
import org.apache.helix.controller.HelixControllerMain;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.model.ExternalView;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.StateModelDefinition;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.tools.StateModelConfigGenerator;
public class LockManagerDemo
@@ -64,7 +64,7 @@ public class LockManagerDemo
admin.addStateModelDef(clusterName, "OnlineOffline",
new StateModelDefinition(generator.generateConfigForOnlineOffline()));
admin.addResource(clusterName, lockGroupName, numPartitions,
- "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE.toString());
+ "OnlineOffline", RebalanceMode.FULL_AUTO.toString());
admin.rebalance(clusterName, lockGroupName, 1);
for (int i = 0; i < numInstances; i++)
{
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/SetupConsumerCluster.java
----------------------------------------------------------------------
diff --git a/recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/SetupConsumerCluster.java b/recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/SetupConsumerCluster.java
index 93aadb4..8bc0a0d 100644
--- a/recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/SetupConsumerCluster.java
+++ b/recipes/rabbitmq-consumer-group/src/main/java/org/apache/helix/recipes/rabbitmq/SetupConsumerCluster.java
@@ -22,7 +22,7 @@ package org.apache.helix.recipes.rabbitmq;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.StateModelDefinition;
import org.apache.helix.tools.StateModelConfigGenerator;
@@ -62,7 +62,7 @@ public class SetupConsumerCluster
// add resource "topic" which has 6 partitions
String resourceName = DEFAULT_RESOURCE_NAME;
admin.addResource(clusterName, resourceName, DEFAULT_PARTITION_NUMBER, DEFAULT_STATE_MODEL,
- IdealStateModeProperty.AUTO_REBALANCE.toString());
+ RebalanceMode.FULL_AUTO.toString());
admin.rebalance(clusterName, resourceName, 1);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/SetupCluster.java
----------------------------------------------------------------------
diff --git a/recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/SetupCluster.java b/recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/SetupCluster.java
index 77cc2f9..097d27b 100644
--- a/recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/SetupCluster.java
+++ b/recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/SetupCluster.java
@@ -22,7 +22,7 @@ package org.apache.helix.filestore;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.StateModelDefinition;
import org.apache.helix.tools.StateModelConfigGenerator;
@@ -75,7 +75,7 @@ public class SetupCluster
// add resource "repository" which has 1 partition
String resourceName = DEFAULT_RESOURCE_NAME;
admin.addResource(clusterName, resourceName, DEFAULT_PARTITION_NUMBER,
- DEFAULT_STATE_MODEL, IdealStateModeProperty.AUTO.toString());
+ DEFAULT_STATE_MODEL, RebalanceMode.SEMI_AUTO.toString());
admin.rebalance(clusterName, resourceName, 1);
} finally
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/recipes/task-execution/src/main/java/org/apache/helix/taskexecution/TaskCluster.java
----------------------------------------------------------------------
diff --git a/recipes/task-execution/src/main/java/org/apache/helix/taskexecution/TaskCluster.java b/recipes/task-execution/src/main/java/org/apache/helix/taskexecution/TaskCluster.java
index c49659e..de462f0 100644
--- a/recipes/task-execution/src/main/java/org/apache/helix/taskexecution/TaskCluster.java
+++ b/recipes/task-execution/src/main/java/org/apache/helix/taskexecution/TaskCluster.java
@@ -24,9 +24,9 @@ import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.HelixConfigScope;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.StateModelDefinition;
import org.apache.helix.model.HelixConfigScope.ConfigScopeProperty;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.builder.HelixConfigScopeBuilder;
import org.apache.helix.tools.StateModelConfigGenerator;
@@ -78,7 +78,7 @@ public class TaskCluster {
clusterConfig.set(clusterScope, node.getId(), node.toJson());
_admin.addResource(_clusterName, node.getId(),
node.getNumPartitions(), DEFAULT_STATE_MODEL,
- IdealStateModeProperty.AUTO_REBALANCE.toString());
+ RebalanceMode.FULL_AUTO.toString());
}
[2/2] git commit: HELIX-166: Rename modes to auto, semi-auto,
and custom, rb=13444
Posted by zz...@apache.org.
HELIX-166: Rename modes to auto, semi-auto, and custom, rb=13444
Project: http://git-wip-us.apache.org/repos/asf/incubator-helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-helix/commit/13d19e91
Tree: http://git-wip-us.apache.org/repos/asf/incubator-helix/tree/13d19e91
Diff: http://git-wip-us.apache.org/repos/asf/incubator-helix/diff/13d19e91
Branch: refs/heads/master
Commit: 13d19e914e7deec29c5cd665e75df12eafbce1b1
Parents: f38b3da
Author: zzhang <zz...@apache.org>
Authored: Thu Aug 15 16:21:52 2013 -0700
Committer: zzhang <zz...@apache.org>
Committed: Thu Aug 15 16:21:52 2013 -0700
----------------------------------------------------------------------
.../resources/ResourceGroupsResource.java | 4 +-
.../main/java/org/apache/helix/HelixAdmin.java | 12 +-
.../controller/rebalancer/AutoRebalancer.java | 4 +-
.../stages/BestPossibleStateCalcStage.java | 7 +-
.../stages/RebalanceIdealStateStage.java | 3 +-
.../examples/IdealStateBuilderExample.java | 11 +-
.../helix/examples/IdealStateExample.java | 20 +--
.../apache/helix/manager/zk/ZKHelixAdmin.java | 34 ++---
.../java/org/apache/helix/model/IdealState.java | 117 ++++++++++++---
.../helix/model/builder/AutoModeISBuilder.java | 4 +-
.../builder/AutoRebalanceModeISBuilder.java | 4 +-
.../model/builder/CustomModeISBuilder.java | 4 +-
.../helix/model/builder/IdealStateBuilder.java | 13 +-
.../participant/HelixCustomCodeRunner.java | 4 +-
.../org/apache/helix/tools/ClusterSetup.java | 24 ++--
.../apache/helix/tools/ZkLogCSVFormatter.java | 2 +-
.../test/java/org/apache/helix/TestHelper.java | 10 +-
.../java/org/apache/helix/TestZnodeModify.java | 14 +-
.../java/org/apache/helix/ZkUnitTestBase.java | 8 +-
.../helix/controller/stages/BaseStageTest.java | 7 +-
.../TestBestPossibleCalcStageCompatibility.java | 144 +++++++++++++++++++
.../stages/TestBestPossibleStateCalcStage.java | 3 +-
.../stages/TestResourceComputationStage.java | 3 +-
.../helix/integration/TestAutoRebalance.java | 15 +-
.../TestAutoRebalancePartitionLimit.java | 5 +-
.../TestCustomizedIdealStateRebalancer.java | 4 +-
.../apache/helix/integration/TestDisable.java | 6 +-
.../apache/helix/integration/TestDriver.java | 10 +-
.../helix/integration/TestInstanceAutoJoin.java | 5 +-
.../integration/TestInvalidAutoIdealState.java | 9 +-
.../helix/integration/TestRenamePartition.java | 3 +-
...estStartMultipleControllersWithSameName.java | 4 +-
.../helix/integration/TestZkReconnect.java | 3 +-
.../helix/manager/zk/TestZNRecordSizeLimit.java | 13 +-
.../org/apache/helix/model/TestIdealState.java | 71 ++++++---
.../model/builder/TestIdealStateBuilder.java | 15 +-
recipes/distributed-lock-manager/README.md | 2 +-
.../helix/lockmanager/LockManagerDemo.java | 4 +-
.../recipes/rabbitmq/SetupConsumerCluster.java | 4 +-
.../apache/helix/filestore/SetupCluster.java | 4 +-
.../apache/helix/taskexecution/TaskCluster.java | 4 +-
41 files changed, 458 insertions(+), 179 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
index dbbf0a1..2bc4169 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.helix.HelixException;
import org.apache.helix.ZNRecord;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterSetup;
import org.apache.helix.webapp.RestAdminApplication;
import org.apache.log4j.Logger;
@@ -140,7 +140,7 @@ public class ResourceGroupsResource extends Resource
jsonParameters.getParameter(JsonParameters.STATE_MODEL_DEF_REF);
int partitions =
Integer.parseInt(jsonParameters.getParameter(JsonParameters.PARTITIONS));
- String mode = IdealStateModeProperty.AUTO.toString();
+ String mode = RebalanceMode.SEMI_AUTO.toString();
if (jsonParameters.getParameter(JsonParameters.IDEAL_STATE_MODE) != null)
{
mode = jsonParameters.getParameter(JsonParameters.IDEAL_STATE_MODE);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/HelixAdmin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/HelixAdmin.java b/helix-core/src/main/java/org/apache/helix/HelixAdmin.java
index 5f92c24..4791703 100644
--- a/helix-core/src/main/java/org/apache/helix/HelixAdmin.java
+++ b/helix-core/src/main/java/org/apache/helix/HelixAdmin.java
@@ -115,13 +115,13 @@ public interface HelixAdmin
* @param resourceName
* @param numPartitions
* @param stateModelRef
- * @param idealStateMode
+ * @param rebalancerMode
*/
void addResource(String clusterName,
String resourceName,
int numPartitions,
String stateModelRef,
- String idealStateMode);
+ String rebalancerMode);
/**
* Add a resource to a cluster, using a bucket size > 1
@@ -130,14 +130,14 @@ public interface HelixAdmin
* @param resourceName
* @param numPartitions
* @param stateModelRef
- * @param idealStateMode
+ * @param rebalancerMode
* @param bucketSize
*/
void addResource(String clusterName,
String resourceName,
int numPartitions,
String stateModelRef,
- String idealStateMode,
+ String rebalancerMode,
int bucketSize);
/**
@@ -147,7 +147,7 @@ public interface HelixAdmin
* @param resourceName
* @param numPartitions
* @param stateModelRef
- * @param idealStateMode
+ * @param rebalancerMode
* @param bucketSize
* @param maxPartitionsPerInstance
*/
@@ -155,7 +155,7 @@ public interface HelixAdmin
String resourceName,
int numPartitions,
String stateModelRef,
- String idealStateMode,
+ String rebalancerMode,
int bucketSize,
int maxPartitionsPerInstance);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java b/helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java
index c0fb5bf..2e3cce7 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java
@@ -41,11 +41,11 @@ import org.apache.helix.controller.strategy.AutoRebalanceStrategy.DefaultPlaceme
import org.apache.helix.controller.strategy.AutoRebalanceStrategy.ReplicaPlacementScheme;
import org.apache.helix.model.CurrentState;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.LiveInstance;
import org.apache.helix.model.Partition;
import org.apache.helix.model.Resource;
import org.apache.helix.model.StateModelDefinition;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.log4j.Logger;
/**
@@ -112,7 +112,7 @@ public class AutoRebalancer implements Rebalancer {
IdealState newIdealState = new IdealState(resourceName);
newIdealState.getRecord().setSimpleFields(currentIdealState.getRecord().getSimpleFields());
- newIdealState.setIdealStateMode(IdealStateModeProperty.AUTO_REBALANCE.toString());
+ newIdealState.setRebalanceMode(RebalanceMode.FULL_AUTO);
newIdealState.getRecord().setListFields(newMapping.getListFields());
return newIdealState;
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java b/helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
index 4b9f835..79e957c 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/stages/BestPossibleStateCalcStage.java
@@ -20,6 +20,7 @@ package org.apache.helix.controller.stages;
*/
import java.util.Map;
+
import org.apache.helix.controller.pipeline.AbstractBaseStage;
import org.apache.helix.controller.pipeline.StageException;
import org.apache.helix.controller.rebalancer.AutoRebalancer;
@@ -29,8 +30,8 @@ import org.apache.helix.controller.rebalancer.SemiAutoRebalancer;
import org.apache.helix.model.IdealState;
import org.apache.helix.model.Partition;
import org.apache.helix.model.Resource;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.IdealState.IdealStateProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.util.HelixUtil;
import org.apache.log4j.Logger;
@@ -120,11 +121,11 @@ public class BestPossibleStateCalcStage extends AbstractBaseStage
}
if (rebalancer == null)
{
- if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO_REBALANCE)
+ if (idealState.getRebalanceMode() == RebalanceMode.FULL_AUTO)
{
rebalancer = new AutoRebalancer();
}
- else if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO)
+ else if (idealState.getRebalanceMode() == RebalanceMode.SEMI_AUTO)
{
rebalancer = new SemiAutoRebalancer();
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java b/helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java
index cb69b00..a049fef 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java
@@ -54,7 +54,8 @@ public class RebalanceIdealStateStage extends AbstractBaseStage
for(String resourceName : idealStateMap.keySet())
{
IdealState currentIdealState = idealStateMap.get(resourceName);
- if(currentIdealState.getRecord().getSimpleFields().containsKey(IdealStateProperty.REBALANCER_CLASS_NAME.toString()))
+ if(currentIdealState.getRecord().getSimpleFields().containsKey(
+ IdealStateProperty.REBALANCER_CLASS_NAME.toString()))
{
String rebalancerClassName = currentIdealState.getRebalancerClassName();
LOG.info("resource " + resourceName + " use idealStateRebalancer " + rebalancerClassName);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/examples/IdealStateBuilderExample.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/examples/IdealStateBuilderExample.java b/helix-core/src/main/java/org/apache/helix/examples/IdealStateBuilderExample.java
index c516d39..2d18630 100644
--- a/helix-core/src/main/java/org/apache/helix/examples/IdealStateBuilderExample.java
+++ b/helix-core/src/main/java/org/apache/helix/examples/IdealStateBuilderExample.java
@@ -24,9 +24,9 @@ import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.StateModelDefinition;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.builder.AutoModeISBuilder;
import org.apache.helix.model.builder.AutoRebalanceModeISBuilder;
import org.apache.helix.model.builder.CustomModeISBuilder;
@@ -41,13 +41,14 @@ public class IdealStateBuilderExample {
public static void main(String[] args) {
if (args.length < 3) {
- System.err.println("USAGE: java IdealStateBuilderExample zkAddress clusterName idealStateMode (AUTO, AUTO_REBALANCE, or CUSTOMIZED)");
+ System.err.println("USAGE: java IdealStateBuilderExample zkAddress clusterName idealStateMode" +
+ " (FULL_AUTO, SEMI_AUTO, CUSTOMIZED, or USER_DEFINED)");
System.exit(1);
}
final String zkAddr = args[0];
final String clusterName = args[1];
- IdealStateModeProperty idealStateMode = IdealStateModeProperty.valueOf(args[2].toUpperCase());
+ RebalanceMode idealStateMode = RebalanceMode.valueOf(args[2].toUpperCase());
ZkClient zkclient =
new ZkClient(zkAddr,
@@ -79,7 +80,7 @@ public class IdealStateBuilderExample {
String resourceName = "TestDB";
IdealState idealState = null;
switch (idealStateMode) {
- case AUTO: {
+ case SEMI_AUTO: {
AutoModeISBuilder builder = new AutoModeISBuilder(resourceName);
builder.setStateModel("MasterSlave")
.setNumPartitions(2)
@@ -90,7 +91,7 @@ public class IdealStateBuilderExample {
idealState = builder.build();
break;
}
- case AUTO_REBALANCE: {
+ case FULL_AUTO: {
AutoRebalanceModeISBuilder builder = new AutoRebalanceModeISBuilder(resourceName);
builder.setStateModel("MasterSlave")
.setNumPartitions(2)
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/examples/IdealStateExample.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/examples/IdealStateExample.java b/helix-core/src/main/java/org/apache/helix/examples/IdealStateExample.java
index f98199d..23249a4 100644
--- a/helix-core/src/main/java/org/apache/helix/examples/IdealStateExample.java
+++ b/helix-core/src/main/java/org/apache/helix/examples/IdealStateExample.java
@@ -23,7 +23,7 @@ import org.apache.helix.controller.HelixControllerMain;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.StateModelDefinition;
import org.apache.helix.tools.StateModelConfigGenerator;
@@ -78,17 +78,17 @@ public class IdealStateExample
{
if (args.length < 3)
{
- System.err.println("USAGE: IdealStateExample zkAddress clusterName idealStateMode (AUTO, AUTO_REBALANCE, or CUSTOMIZED) idealStateJsonFile (required for CUSTOMIZED mode)");
+ System.err.println("USAGE: IdealStateExample zkAddress clusterName idealStateMode (FULL_AUTO, SEMI_AUTO, or CUSTOMIZED) idealStateJsonFile (required for CUSTOMIZED mode)");
System.exit(1);
}
final String zkAddr = args[0];
final String clusterName = args[1];
- final String idealStateModeStr = args[2].toUpperCase();
+ final String idealStateRebalancerModeStr = args[2].toUpperCase();
String idealStateJsonFile = null;
- IdealStateModeProperty idealStateMode =
- IdealStateModeProperty.valueOf(idealStateModeStr);
- if (idealStateMode == IdealStateModeProperty.CUSTOMIZED)
+ RebalanceMode idealStateRebalancerMode =
+ RebalanceMode.valueOf(idealStateRebalancerModeStr);
+ if (idealStateRebalancerMode == RebalanceMode.CUSTOMIZED)
{
if (args.length < 4)
{
@@ -126,15 +126,15 @@ public class IdealStateExample
// add resource "TestDB" which has 4 partitions and uses MasterSlave state model
String resourceName = "TestDB";
- if (idealStateMode == IdealStateModeProperty.AUTO
- || idealStateMode == IdealStateModeProperty.AUTO_REBALANCE)
+ if (idealStateRebalancerMode == RebalanceMode.SEMI_AUTO
+ || idealStateRebalancerMode == RebalanceMode.FULL_AUTO)
{
- admin.addResource(clusterName, resourceName, 4, "MasterSlave", idealStateModeStr);
+ admin.addResource(clusterName, resourceName, 4, "MasterSlave", idealStateRebalancerModeStr);
// rebalance resource "TestDB" using 3 replicas
admin.rebalance(clusterName, resourceName, 3);
}
- else if (idealStateMode == IdealStateModeProperty.CUSTOMIZED)
+ else if (idealStateRebalancerMode == RebalanceMode.CUSTOMIZED)
{
admin.addIdealState(clusterName, resourceName, idealStateJsonFile);
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
index 1a5609b..a9226d3 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java
@@ -64,7 +64,7 @@ import org.apache.helix.model.ExternalView;
import org.apache.helix.model.HelixConfigScope;
import org.apache.helix.model.HelixConfigScope.ConfigScopeProperty;
import org.apache.helix.model.IdealState;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.InstanceConfig.InstanceConfigProperty;
import org.apache.helix.model.LiveInstance;
@@ -274,8 +274,10 @@ public class ZKHelixAdmin implements HelixAdmin
IdealState idealState = new IdealState(idealStateRecord);
for (String partitionName : partitionNames)
{
- if ((idealState.getIdealStateMode() == IdealStateModeProperty.AUTO && idealState.getPreferenceList(partitionName) == null)
- || (idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED && idealState.getInstanceStateMap(partitionName) == null))
+ if ((idealState.getRebalanceMode() == RebalanceMode.SEMI_AUTO
+ && idealState.getPreferenceList(partitionName) == null)
+ || (idealState.getRebalanceMode() == RebalanceMode.CUSTOMIZED
+ && idealState.getInstanceStateMap(partitionName) == null))
{
logger.warn("Cluster: " + clusterName + ", resource: " + resourceName
+ ", partition: " + partitionName
@@ -373,7 +375,7 @@ public class ZKHelixAdmin implements HelixAdmin
// check partition exists in resource group
Set<String> resetPartitionNames = new HashSet<String>(partitionNames);
- if (idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ if (idealState.getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
Set<String> partitions =
new HashSet<String>(idealState.getRecord().getMapFields().keySet());
@@ -700,7 +702,7 @@ public class ZKHelixAdmin implements HelixAdmin
resourceName,
partitions,
stateModelRef,
- IdealStateModeProperty.AUTO.toString(),
+ RebalanceMode.SEMI_AUTO.toString(),
0);
}
@@ -709,9 +711,9 @@ public class ZKHelixAdmin implements HelixAdmin
String resourceName,
int partitions,
String stateModelRef,
- String idealStateMode)
+ String rebalancerMode)
{
- addResource(clusterName, resourceName, partitions, stateModelRef, idealStateMode, 0);
+ addResource(clusterName, resourceName, partitions, stateModelRef, rebalancerMode, 0);
}
@Override
@@ -746,17 +748,17 @@ public class ZKHelixAdmin implements HelixAdmin
String resourceName,
int partitions,
String stateModelRef,
- String idealStateMode,
+ String rebalancerMode,
int bucketSize)
{
- addResource(clusterName, resourceName, partitions, stateModelRef, idealStateMode,
+ addResource(clusterName, resourceName, partitions, stateModelRef, rebalancerMode,
bucketSize, -1);
}
@Override
public void addResource(String clusterName, String resourceName,
- int partitions, String stateModelRef, String idealStateMode,
+ int partitions, String stateModelRef, String rebalancerMode,
int bucketSize, int maxPartitionsPerInstance)
{
if (!ZKUtil.isClusterSetup(clusterName, _zkClient))
@@ -764,10 +766,10 @@ public class ZKHelixAdmin implements HelixAdmin
throw new HelixException("cluster " + clusterName + " is not setup yet");
}
- IdealStateModeProperty mode = IdealStateModeProperty.AUTO;
+ RebalanceMode mode = RebalanceMode.SEMI_AUTO;
try
{
- mode = IdealStateModeProperty.valueOf(idealStateMode);
+ mode = RebalanceMode.valueOf(rebalancerMode);
}
catch (Exception e)
{
@@ -776,7 +778,7 @@ public class ZKHelixAdmin implements HelixAdmin
IdealState idealState = new IdealState(resourceName);
idealState.setNumPartitions(partitions);
idealState.setStateModelDefRef(stateModelRef);
- idealState.setIdealStateMode(mode.toString());
+ idealState.setRebalanceMode(mode);
idealState.setReplicas("" + 0);
idealState.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
if(maxPartitionsPerInstance > 0 && maxPartitionsPerInstance < Integer.MAX_VALUE)
@@ -1256,7 +1258,7 @@ public class ZKHelixAdmin implements HelixAdmin
{
masterStateValue = slaveStateValue;
}
- if (idealState.getIdealStateMode() != IdealStateModeProperty.AUTO_REBALANCE)
+ if (idealState.getRebalanceMode() != RebalanceMode.FULL_AUTO)
{
ZNRecord newIdealState =
DefaultIdealStateCalculator.calculateIdealState(instanceNames,
@@ -1267,12 +1269,12 @@ public class ZKHelixAdmin implements HelixAdmin
slaveStateValue);
// for now keep mapField in AUTO mode and remove listField in CUSTOMIZED mode
- if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO)
+ if (idealState.getRebalanceMode() == RebalanceMode.SEMI_AUTO)
{
idealState.getRecord().setListFields(newIdealState.getListFields());
idealState.getRecord().setMapFields(newIdealState.getMapFields());
}
- if (idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ if (idealState.getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
idealState.getRecord().setMapFields(newIdealState.getMapFields());
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/model/IdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/IdealState.java b/helix-core/src/main/java/org/apache/helix/model/IdealState.java
index 800477d..22e2328 100644
--- a/helix-core/src/main/java/org/apache/helix/model/IdealState.java
+++ b/helix-core/src/main/java/org/apache/helix/model/IdealState.java
@@ -39,23 +39,32 @@ public class IdealState extends HelixProperty
{
public enum IdealStateProperty
{
- NUM_PARTITIONS,
- STATE_MODEL_DEF_REF,
- STATE_MODEL_FACTORY_NAME,
- REPLICAS, IDEAL_STATE_MODE,
- REBALANCE_TIMER_PERIOD,
- MAX_PARTITIONS_PER_INSTANCE,
- INSTANCE_GROUP_TAG,
+ NUM_PARTITIONS,
+ STATE_MODEL_DEF_REF,
+ STATE_MODEL_FACTORY_NAME,
+ REPLICAS,
+ @Deprecated
+ IDEAL_STATE_MODE,
+ REBALANCE_MODE,
+ REBALANCE_TIMER_PERIOD,
+ MAX_PARTITIONS_PER_INSTANCE,
+ INSTANCE_GROUP_TAG,
REBALANCER_CLASS_NAME
}
public static final String QUERY_LIST = "PREFERENCE_LIST_QUERYS";
+ @Deprecated
public enum IdealStateModeProperty
{
AUTO, CUSTOMIZED, AUTO_REBALANCE
}
+ public enum RebalanceMode
+ {
+ FULL_AUTO, SEMI_AUTO, CUSTOMIZED, USER_DEFINED, NONE
+ }
+
private static final Logger logger = Logger.getLogger(IdealState.class
.getName());
@@ -74,11 +83,21 @@ public class IdealState extends HelixProperty
return _record.getId();
}
+ @Deprecated
public void setIdealStateMode(String mode)
{
_record.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), mode);
+ RebalanceMode rebalanceMode = normalizeRebalanceMode(IdealStateModeProperty.valueOf(mode));
+ _record.setEnumField(IdealStateProperty.REBALANCE_MODE.toString(), rebalanceMode);
}
-
+
+ public void setRebalanceMode(RebalanceMode rebalancerType)
+ {
+ _record.setEnumField(IdealStateProperty.REBALANCE_MODE.toString(), rebalancerType);
+ IdealStateModeProperty idealStateMode = denormalizeRebalanceMode(rebalancerType);
+ _record.setEnumField(IdealStateProperty.IDEAL_STATE_MODE.toString(),idealStateMode);
+ }
+
public int getMaxPartitionsPerInstance()
{
return _record.getIntField(IdealStateProperty.MAX_PARTITIONS_PER_INSTANCE.toString(),
@@ -101,12 +120,25 @@ public class IdealState extends HelixProperty
_record.setIntField(IdealStateProperty.MAX_PARTITIONS_PER_INSTANCE.toString(), max);
}
+ @Deprecated
public IdealStateModeProperty getIdealStateMode()
{
return _record.getEnumField(IdealStateProperty.IDEAL_STATE_MODE.toString(),
IdealStateModeProperty.class, IdealStateModeProperty.AUTO);
}
+ public RebalanceMode getRebalanceMode()
+ {
+ RebalanceMode property = _record.getEnumField(
+ IdealStateProperty.REBALANCE_MODE.toString(), RebalanceMode.class,
+ RebalanceMode.NONE);
+ if (property == RebalanceMode.NONE)
+ {
+ property = normalizeRebalanceMode(getIdealStateMode());
+ }
+ return property;
+ }
+
public void setPartitionState(String partitionName, String instanceName,
String state)
{
@@ -120,11 +152,12 @@ public class IdealState extends HelixProperty
public Set<String> getPartitionSet()
{
- if (getIdealStateMode() == IdealStateModeProperty.AUTO
- || getIdealStateMode() == IdealStateModeProperty.AUTO_REBALANCE)
+ if (getRebalanceMode() == RebalanceMode.SEMI_AUTO
+ || getRebalanceMode() == RebalanceMode.FULL_AUTO
+ || getRebalanceMode() == RebalanceMode.USER_DEFINED)
{
return _record.getListFields().keySet();
- } else if (getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ } else if (getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
return _record.getMapFields().keySet();
} else
@@ -141,8 +174,8 @@ public class IdealState extends HelixProperty
public Set<String> getInstanceSet(String partitionName)
{
- if (getIdealStateMode() == IdealStateModeProperty.AUTO
- || getIdealStateMode() == IdealStateModeProperty.AUTO_REBALANCE)
+ if (getRebalanceMode() == RebalanceMode.SEMI_AUTO
+ || getRebalanceMode() == RebalanceMode.FULL_AUTO)
{
List<String> prefList = _record.getListField(partitionName);
if (prefList != null)
@@ -153,7 +186,7 @@ public class IdealState extends HelixProperty
logger.warn(partitionName + " does NOT exist");
return Collections.emptySet();
}
- } else if (getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ } else if (getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
Map<String, String> stateMap = _record.getMapField(partitionName);
if (stateMap != null)
@@ -222,9 +255,9 @@ public class IdealState extends HelixProperty
if (replica == null)
{
String firstPartition = null;
- switch (getIdealStateMode())
+ switch (getRebalanceMode())
{
- case AUTO:
+ case SEMI_AUTO:
if (_record.getListFields().size() == 0)
{
replica = "0";
@@ -299,7 +332,7 @@ public class IdealState extends HelixProperty
return false;
}
- if (getIdealStateMode() == IdealStateModeProperty.AUTO)
+ if (getRebalanceMode() == RebalanceMode.SEMI_AUTO)
{
String replicaStr = getReplicas();
if (replicaStr == null) {
@@ -336,4 +369,54 @@ public class IdealState extends HelixProperty
return _record.getSimpleField(
IdealStateProperty.INSTANCE_GROUP_TAG.toString());
}
+
+ private RebalanceMode normalizeRebalanceMode(IdealStateModeProperty mode)
+ {
+ RebalanceMode property;
+ switch (mode)
+ {
+ case AUTO_REBALANCE:
+ property = RebalanceMode.FULL_AUTO;
+ break;
+ case AUTO:
+ property = RebalanceMode.SEMI_AUTO;
+ break;
+ case CUSTOMIZED:
+ property = RebalanceMode.CUSTOMIZED;
+ break;
+ default:
+ if (getRebalancerClassName() != null)
+ {
+ property = RebalanceMode.USER_DEFINED;
+ }
+ else
+ {
+ property = RebalanceMode.SEMI_AUTO;
+ }
+ break;
+ }
+ return property;
+ }
+
+ private IdealStateModeProperty denormalizeRebalanceMode(
+ RebalanceMode rebalancerType)
+ {
+ IdealStateModeProperty property;
+ switch (rebalancerType)
+ {
+ case FULL_AUTO:
+ property = IdealStateModeProperty.AUTO_REBALANCE;
+ break;
+ case SEMI_AUTO:
+ property = IdealStateModeProperty.AUTO;
+ break;
+ case CUSTOMIZED:
+ property = IdealStateModeProperty.CUSTOMIZED;
+ break;
+ default:
+ property = IdealStateModeProperty.AUTO;
+ break;
+ }
+ return property;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/model/builder/AutoModeISBuilder.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/builder/AutoModeISBuilder.java b/helix-core/src/main/java/org/apache/helix/model/builder/AutoModeISBuilder.java
index d3e7120..ab98998 100644
--- a/helix-core/src/main/java/org/apache/helix/model/builder/AutoModeISBuilder.java
+++ b/helix-core/src/main/java/org/apache/helix/model/builder/AutoModeISBuilder.java
@@ -19,7 +19,7 @@ package org.apache.helix.model.builder;
* under the License.
*/
-import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import java.util.ArrayList;
import java.util.Arrays;
@@ -28,7 +28,7 @@ public class AutoModeISBuilder extends IdealStateBuilder {
public AutoModeISBuilder(String resourceName)
{
super(resourceName);
- setMode(IdealState.IdealStateModeProperty.AUTO);
+ setRebalancerMode(RebalanceMode.SEMI_AUTO);
}
public void add(String partitionName)
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/model/builder/AutoRebalanceModeISBuilder.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/builder/AutoRebalanceModeISBuilder.java b/helix-core/src/main/java/org/apache/helix/model/builder/AutoRebalanceModeISBuilder.java
index 15638e3..fcb4e0f 100644
--- a/helix-core/src/main/java/org/apache/helix/model/builder/AutoRebalanceModeISBuilder.java
+++ b/helix-core/src/main/java/org/apache/helix/model/builder/AutoRebalanceModeISBuilder.java
@@ -19,7 +19,7 @@ package org.apache.helix.model.builder;
* under the License.
*/
-import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import java.util.ArrayList;
@@ -27,7 +27,7 @@ public class AutoRebalanceModeISBuilder extends IdealStateBuilder {
public AutoRebalanceModeISBuilder(String resourceName)
{
super(resourceName);
- setMode(IdealState.IdealStateModeProperty.AUTO_REBALANCE);
+ setRebalancerMode(RebalanceMode.FULL_AUTO);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/model/builder/CustomModeISBuilder.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/builder/CustomModeISBuilder.java b/helix-core/src/main/java/org/apache/helix/model/builder/CustomModeISBuilder.java
index e75b7ac..10fefec 100644
--- a/helix-core/src/main/java/org/apache/helix/model/builder/CustomModeISBuilder.java
+++ b/helix-core/src/main/java/org/apache/helix/model/builder/CustomModeISBuilder.java
@@ -19,7 +19,7 @@ package org.apache.helix.model.builder;
* under the License.
*/
-import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import java.util.Map;
import java.util.TreeMap;
@@ -29,7 +29,7 @@ public class CustomModeISBuilder extends IdealStateBuilder {
public CustomModeISBuilder(String resourceName)
{
super(resourceName);
- setMode(IdealState.IdealStateModeProperty.CUSTOMIZED);
+ setRebalancerMode(RebalanceMode.CUSTOMIZED);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java b/helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java
index 2877c74..ab847af 100644
--- a/helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java
+++ b/helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java
@@ -49,9 +49,9 @@ public abstract class IdealStateBuilder {
*/
private String stateModelFactoryName = HelixConstants.DEFAULT_STATE_MODEL_FACTORY;
/**
- * Helix Execution mode/strategies. AUTO_REBALANCE, AUTO, CUSTOM
+ * Helix rebalancer strategies. AUTO, SEMI_AUTO, CUSTOMIZED
*/
- protected IdealState.IdealStateModeProperty mode;
+ protected IdealState.RebalanceMode rebalancerMode;
/**
* A constraint that limits the maximum number of partitions per Node.
*/
@@ -140,9 +140,10 @@ public abstract class IdealStateBuilder {
*
* @return
*/
- public IdealStateBuilder setMode(IdealState.IdealStateModeProperty mode) {
- this.mode = mode;
- return this;
+ public IdealStateBuilder setRebalancerMode(
+ IdealState.RebalanceMode rebalancerMode) {
+ this.rebalancerMode = rebalancerMode;
+ return this;
}
/**
@@ -156,7 +157,7 @@ public abstract class IdealStateBuilder {
idealstate.setMaxPartitionsPerInstance(maxPartitionsPerNode);
idealstate.setStateModelDefRef(stateModel);
idealstate.setStateModelFactoryName(stateModelFactoryName);
- idealstate.setIdealStateMode(mode.toString());
+ idealstate.setRebalanceMode(rebalancerMode);
idealstate.setReplicas("" + numReplica);
if (!idealstate.isValid()) {
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/participant/HelixCustomCodeRunner.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/participant/HelixCustomCodeRunner.java b/helix-core/src/main/java/org/apache/helix/participant/HelixCustomCodeRunner.java
index d92b92f..6996011 100644
--- a/helix-core/src/main/java/org/apache/helix/participant/HelixCustomCodeRunner.java
+++ b/helix-core/src/main/java/org/apache/helix/participant/HelixCustomCodeRunner.java
@@ -33,7 +33,7 @@ import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.IdealState;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.log4j.Logger;
@@ -145,7 +145,7 @@ public class HelixCustomCodeRunner
Builder keyBuilder = accessor.keyBuilder();
IdealState idealState = new IdealState(_resourceName);
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setReplicas(StateModelToken.ANY_LIVEINSTANCE.toString());
idealState.setNumPartitions(1);
idealState.setStateModelDefRef(LEADER_STANDBY);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/tools/ClusterSetup.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/tools/ClusterSetup.java b/helix-core/src/main/java/org/apache/helix/tools/ClusterSetup.java
index 4260e87..c63f5f7 100644
--- a/helix-core/src/main/java/org/apache/helix/tools/ClusterSetup.java
+++ b/helix-core/src/main/java/org/apache/helix/tools/ClusterSetup.java
@@ -53,7 +53,7 @@ import org.apache.helix.model.ExternalView;
import org.apache.helix.model.HelixConfigScope;
import org.apache.helix.model.HelixConfigScope.ConfigScopeProperty;
import org.apache.helix.model.IdealState;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.LiveInstance;
import org.apache.helix.model.StateModelDefinition;
@@ -411,34 +411,34 @@ public class ClusterSetup
resourceName,
numResources,
stateModelRef,
- IdealStateModeProperty.AUTO.toString());
+ RebalanceMode.SEMI_AUTO.toString());
}
public void addResourceToCluster(String clusterName,
String resourceName,
int numResources,
String stateModelRef,
- String idealStateMode)
+ String rebalancerMode)
{
_admin.addResource(clusterName,
resourceName,
numResources,
stateModelRef,
- idealStateMode);
+ rebalancerMode);
}
public void addResourceToCluster(String clusterName,
String resourceName,
int numResources,
String stateModelRef,
- String idealStateMode,
+ String rebalancerMode,
int bucketSize)
{
_admin.addResource(clusterName,
resourceName,
numResources,
stateModelRef,
- idealStateMode,
+ rebalancerMode,
bucketSize);
}
@@ -446,7 +446,7 @@ public class ClusterSetup
String resourceName,
int numResources,
String stateModelRef,
- String idealStateMode,
+ String rebalancerMode,
int bucketSize,
int maxPartitionsPerInstance)
{
@@ -454,7 +454,7 @@ public class ClusterSetup
resourceName,
numResources,
stateModelRef,
- idealStateMode,
+ rebalancerMode,
bucketSize,
maxPartitionsPerInstance);
}
@@ -477,11 +477,11 @@ public class ClusterSetup
public void expandResource(String clusterName, String resourceName)
{
IdealState idealState = _admin.getResourceIdealState(clusterName, resourceName);
- if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO_REBALANCE
- || idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ if (idealState.getRebalanceMode() == RebalanceMode.FULL_AUTO
+ || idealState.getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
_logger.info("Skipping idealState " + idealState.getResourceName() + " "
- + idealState.getIdealStateMode());
+ + idealState.getRebalanceMode());
return;
}
boolean anyLiveInstance = false;
@@ -1241,7 +1241,7 @@ public class ClusterSetup
String resourceName = cmd.getOptionValues(addResource)[1];
int partitions = Integer.parseInt(cmd.getOptionValues(addResource)[2]);
String stateModelRef = cmd.getOptionValues(addResource)[3];
- String modeValue = IdealStateModeProperty.AUTO.toString();
+ String modeValue = RebalanceMode.SEMI_AUTO.toString();
if (cmd.hasOption(mode))
{
modeValue = cmd.getOptionValues(mode)[0];
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/main/java/org/apache/helix/tools/ZkLogCSVFormatter.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/tools/ZkLogCSVFormatter.java b/helix-core/src/main/java/org/apache/helix/tools/ZkLogCSVFormatter.java
index 1618eee..04c503a 100644
--- a/helix-core/src/main/java/org/apache/helix/tools/ZkLogCSVFormatter.java
+++ b/helix-core/src/main/java/org/apache/helix/tools/ZkLogCSVFormatter.java
@@ -234,7 +234,7 @@ public class ZkLogCSVFormatter
timestamp,
record.getId(),
record.getSimpleField(IdealStateProperty.NUM_PARTITIONS.toString()),
- record.getSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString()),
+ record.getSimpleField(IdealStateProperty.REBALANCE_MODE.toString()),
partition,
instance,
Integer.toString(i));
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/TestHelper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/TestHelper.java b/helix-core/src/test/java/org/apache/helix/TestHelper.java
index 6516138..59b5665 100644
--- a/helix-core/src/test/java/org/apache/helix/TestHelper.java
+++ b/helix-core/src/test/java/org/apache/helix/TestHelper.java
@@ -19,14 +19,10 @@ package org.apache.helix;
* under the License.
*/
-import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.net.ServerSocket;
-import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -59,7 +55,7 @@ import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.CurrentState;
import org.apache.helix.model.ExternalView;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.Message;
import org.apache.helix.model.Message.MessageType;
import org.apache.helix.model.StateModelDefinition;
@@ -429,7 +425,7 @@ public class TestHelper
nodesNb,
replica,
stateModelDef,
- IdealStateModeProperty.AUTO,
+ RebalanceMode.SEMI_AUTO,
doRebalance);
}
@@ -443,7 +439,7 @@ public class TestHelper
int nodesNb,
int replica,
String stateModelDef,
- IdealStateModeProperty mode,
+ RebalanceMode mode,
boolean doRebalance) throws Exception
{
ZkClient zkClient = new ZkClient(ZkAddr);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/TestZnodeModify.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/TestZnodeModify.java b/helix-core/src/test/java/org/apache/helix/TestZnodeModify.java
index 35ab5f0..2046316 100644
--- a/helix-core/src/test/java/org/apache/helix/TestZnodeModify.java
+++ b/helix-core/src/test/java/org/apache/helix/TestZnodeModify.java
@@ -28,8 +28,8 @@ import java.util.Map;
import org.apache.helix.ZNRecord;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.IdealState.IdealStateProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.TestCommand;
import org.apache.helix.tools.TestExecutor;
import org.apache.helix.tools.TestTrigger;
@@ -117,7 +117,8 @@ public class TestZnodeModify extends ZkUnitTestBase
ZNRecord record = getExampleZNRecord();
ZNRecord recordNew = new ZNRecord(record);
- recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
+ recordNew.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.SEMI_AUTO.toString());
arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", recordNew);
command = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 3000, record), arg);
commandList.add(command);
@@ -162,7 +163,8 @@ public class TestZnodeModify extends ZkUnitTestBase
ZNRecord record = getExampleZNRecord();
ZNRecord recordNew = new ZNRecord(record);
- recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
+ recordNew.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.SEMI_AUTO.toString());
arg1 = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", recordNew);
command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 500, record), arg1);
commandList.add(command1);
@@ -196,7 +198,8 @@ public class TestZnodeModify extends ZkUnitTestBase
final ZNRecord record = getExampleZNRecord();
ZNRecord recordNew = new ZNRecord(record);
- recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
+ recordNew.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.SEMI_AUTO.toString());
ZnodeOpArg arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.ZNODE, "+", recordNew);
TestCommand command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 8000, record), arg1);
commandList.add(command1);
@@ -266,7 +269,8 @@ public class TestZnodeModify extends ZkUnitTestBase
private ZNRecord getExampleZNRecord()
{
ZNRecord record = new ZNRecord("TestDB");
- record.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.CUSTOMIZED.toString());
+ record.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.CUSTOMIZED.toString());
Map<String, String> map = new HashMap<String, String>();
map.put("localhost_12918", "MASTER");
map.put("localhost_12919", "SLAVE");
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java b/helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java
index 14d8892..c61a4ac 100644
--- a/helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java
+++ b/helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java
@@ -39,11 +39,11 @@ import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.HelixConfigScope.ConfigScopeProperty;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.LiveInstance;
import org.apache.helix.model.Message;
import org.apache.helix.model.StateModelDefinition;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.Message.Attributes;
import org.apache.helix.model.Message.MessageType;
import org.apache.helix.tools.StateModelConfigGenerator;
@@ -210,11 +210,11 @@ public class ZkUnitTestBase
IdealState idealState = accessor.getProperty(keyBuilder.idealStates(resource));
for (String partitionName : idealState.getPartitionSet())
{
- if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO)
+ if (idealState.getRebalanceMode() == RebalanceMode.SEMI_AUTO)
{
AssertJUnit.assertEquals(repl, idealState.getPreferenceList(partitionName).size());
}
- else if (idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
+ else if (idealState.getRebalanceMode() == RebalanceMode.CUSTOMIZED)
{
AssertJUnit.assertEquals(repl, idealState.getInstanceStateMap(partitionName)
.size());
@@ -351,7 +351,7 @@ public class ZkUnitTestBase
idealState.setReplicas(Integer.toString(replicas));
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(partitions);
idealStates.add(idealState);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/controller/stages/BaseStageTest.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/controller/stages/BaseStageTest.java b/helix-core/src/test/java/org/apache/helix/controller/stages/BaseStageTest.java
index af98620..f2e49e5 100644
--- a/helix-core/src/test/java/org/apache/helix/controller/stages/BaseStageTest.java
+++ b/helix-core/src/test/java/org/apache/helix/controller/stages/BaseStageTest.java
@@ -35,10 +35,10 @@ import org.apache.helix.controller.pipeline.Stage;
import org.apache.helix.controller.pipeline.StageContext;
import org.apache.helix.controller.stages.ClusterEvent;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.LiveInstance;
import org.apache.helix.model.Resource;
import org.apache.helix.model.StateModelDefinition;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.tools.StateModelConfigGenerator;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
@@ -77,7 +77,8 @@ public class BaseStageTest
}
protected List<IdealState> setupIdealState(int nodes, String[] resources,
- int partitions, int replicas)
+ int partitions, int replicas,
+ RebalanceMode rebalanceMode)
{
List<IdealState> idealStates = new ArrayList<IdealState>();
List<String> instances = new ArrayList<String>();
@@ -101,7 +102,7 @@ public class BaseStageTest
}
IdealState idealState = new IdealState(record);
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ idealState.setRebalanceMode(rebalanceMode);
idealState.setNumPartitions(partitions);
idealStates.add(idealState);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleCalcStageCompatibility.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleCalcStageCompatibility.java b/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleCalcStageCompatibility.java
new file mode 100644
index 0000000..ba0d3d7
--- /dev/null
+++ b/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleCalcStageCompatibility.java
@@ -0,0 +1,144 @@
+package org.apache.helix.controller.stages;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.helix.ZNRecord;
+import org.apache.helix.PropertyKey.Builder;
+import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.Partition;
+import org.apache.helix.model.Resource;
+import org.testng.AssertJUnit;
+import org.testng.annotations.Test;
+
+@SuppressWarnings("deprecation")
+/**
+ * These tests ensure that BestPossibleStateCalcStage correctly recognizes the mode and follows
+ * appropriate code paths, even though the old method of setting rebalance mode is used.
+ */
+public class TestBestPossibleCalcStageCompatibility extends BaseStageTest {
+ @Test
+ public void testSemiAutoModeCompatibility() {
+ System.out.println("START TestBestPossibleStateCalcStage at "
+ + new Date(System.currentTimeMillis()));
+
+ String[] resources = new String[]{ "testResourceName" };
+ setupIdealStateDeprecated(5, resources, 10, 1, IdealStateModeProperty.AUTO);
+ setupLiveInstances(5);
+ setupStateModel();
+
+ Map<String, Resource> resourceMap = getResourceMap();
+ CurrentStateOutput currentStateOutput = new CurrentStateOutput();
+ event.addAttribute(AttributeName.RESOURCES.toString(),
+ resourceMap);
+ event.addAttribute(AttributeName.CURRENT_STATE.toString(),
+ currentStateOutput);
+
+ ReadClusterDataStage stage1 = new ReadClusterDataStage();
+ runStage(event, stage1);
+ BestPossibleStateCalcStage stage2 = new BestPossibleStateCalcStage();
+ runStage(event, stage2);
+
+ BestPossibleStateOutput output = event
+ .getAttribute(AttributeName.BEST_POSSIBLE_STATE.toString());
+ for (int p = 0; p < 5; p++) {
+ Partition resource = new Partition("testResourceName_" + p);
+ AssertJUnit.assertEquals(
+ "MASTER",
+ output.getInstanceStateMap("testResourceName", resource).get(
+ "localhost_" + (p + 1) % 5));
+ }
+ System.out.println("END TestBestPossibleStateCalcStage at "
+ + new Date(System.currentTimeMillis()));
+ }
+
+ @Test
+ public void testCustomModeCompatibility() {
+ System.out.println("START TestBestPossibleStateCalcStage at "
+ + new Date(System.currentTimeMillis()));
+
+ String[] resources = new String[]{ "testResourceName" };
+ setupIdealStateDeprecated(5, resources, 10, 1, IdealStateModeProperty.CUSTOMIZED);
+ setupLiveInstances(5);
+ setupStateModel();
+
+ Map<String, Resource> resourceMap = getResourceMap();
+ CurrentStateOutput currentStateOutput = new CurrentStateOutput();
+ event.addAttribute(AttributeName.RESOURCES.toString(),
+ resourceMap);
+ event.addAttribute(AttributeName.CURRENT_STATE.toString(),
+ currentStateOutput);
+
+ ReadClusterDataStage stage1 = new ReadClusterDataStage();
+ runStage(event, stage1);
+ BestPossibleStateCalcStage stage2 = new BestPossibleStateCalcStage();
+ runStage(event, stage2);
+
+ BestPossibleStateOutput output = event
+ .getAttribute(AttributeName.BEST_POSSIBLE_STATE.toString());
+ for (int p = 0; p < 5; p++) {
+ Partition resource = new Partition("testResourceName_" + p);
+ AssertJUnit.assertNull(
+ output.getInstanceStateMap("testResourceName", resource).get(
+ "localhost_" + (p + 1) % 5));
+ }
+ System.out.println("END TestBestPossibleStateCalcStage at "
+ + new Date(System.currentTimeMillis()));
+ }
+
+ protected List<IdealState> setupIdealStateDeprecated(int nodes, String[] resources,
+ int partitions, int replicas, IdealStateModeProperty mode) {
+ List<IdealState> idealStates = new ArrayList<IdealState>();
+ List<String> instances = new ArrayList<String>();
+ for (int i = 0; i < nodes; i++) {
+ instances.add("localhost_" + i);
+ }
+
+ for (int i = 0; i < resources.length; i++) {
+ String resourceName = resources[i];
+ ZNRecord record = new ZNRecord(resourceName);
+ for (int p = 0; p < partitions; p++) {
+ List<String> value = new ArrayList<String>();
+ for (int r = 0; r < replicas; r++)
+ {
+ value.add("localhost_" + (p + r + 1) % nodes);
+ }
+ record.setListField(resourceName + "_" + p, value);
+ }
+ IdealState idealState = new IdealState(record);
+ idealState.setStateModelDefRef("MasterSlave");
+ idealState.setIdealStateMode(mode.toString());
+ idealState.setNumPartitions(partitions);
+ idealStates.add(idealState);
+
+ //System.out.println(idealState);
+
+ Builder keyBuilder = accessor.keyBuilder();
+
+ accessor.setProperty(keyBuilder.idealStates(resourceName), idealState);
+ }
+ return idealStates;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleStateCalcStage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleStateCalcStage.java b/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleStateCalcStage.java
index effea2c..e57f193 100644
--- a/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleStateCalcStage.java
+++ b/helix-core/src/test/java/org/apache/helix/controller/stages/TestBestPossibleStateCalcStage.java
@@ -29,6 +29,7 @@ import org.apache.helix.controller.stages.CurrentStateOutput;
import org.apache.helix.controller.stages.ReadClusterDataStage;
import org.apache.helix.model.Partition;
import org.apache.helix.model.Resource;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
@@ -42,7 +43,7 @@ public class TestBestPossibleStateCalcStage extends BaseStageTest
// List<IdealState> idealStates = new ArrayList<IdealState>();
String[] resources = new String[]{ "testResourceName" };
- setupIdealState(5, resources, 10, 1);
+ setupIdealState(5, resources, 10, 1, RebalanceMode.SEMI_AUTO);
setupLiveInstances(5);
setupStateModel();
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java b/helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java
index c0b6528..71013a1 100644
--- a/helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java
+++ b/helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java
@@ -36,6 +36,7 @@ import org.apache.helix.model.CurrentState;
import org.apache.helix.model.IdealState;
import org.apache.helix.model.LiveInstance;
import org.apache.helix.model.Resource;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.DefaultIdealStateCalculator;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
@@ -93,7 +94,7 @@ public class TestResourceComputationStage extends BaseStageTest
// List<IdealState> idealStates = new ArrayList<IdealState>();
String[] resources = new String[]
{ "testResource1", "testResource2" };
- List<IdealState> idealStates = setupIdealState(5, resources, 10, 1);
+ List<IdealState> idealStates = setupIdealState(5, resources, 10, 1, RebalanceMode.SEMI_AUTO);
ResourceComputationStage stage = new ResourceComputationStage();
runStage(event, new ReadClusterDataStage());
runStage(event, stage);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java
index ea860c7..daf8654 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java
@@ -32,13 +32,12 @@ import org.apache.helix.PropertyKey.Builder;
import org.apache.helix.TestHelper.StartCMResult;
import org.apache.helix.controller.HelixControllerMain;
import org.apache.helix.controller.stages.ClusterDataCache;
-import org.apache.helix.integration.TestAutoRebalancePartitionLimit.ExternalViewBalancedVerifier;
import org.apache.helix.manager.zk.ZKHelixDataAccessor;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.ExternalView;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterSetup;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.ClusterStateVerifier.ZkVerifier;
@@ -71,9 +70,11 @@ public class TestAutoRebalance extends ZkStandAloneCMTestBaseWithPropertyServerC
// setup storage cluster
_setupTool.addCluster(CLUSTER_NAME, true);
- _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL, IdealStateModeProperty.AUTO_REBALANCE+"");
+ _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, _PARTITIONS, STATE_MODEL,
+ RebalanceMode.FULL_AUTO+"");
- _setupTool.addResourceToCluster(CLUSTER_NAME, db2, _PARTITIONS, "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE+"");
+ _setupTool.addResourceToCluster(CLUSTER_NAME, db2, _PARTITIONS, "OnlineOffline",
+ RebalanceMode.FULL_AUTO+"");
for (int i = 0; i < NODE_NR; i++)
@@ -132,7 +133,8 @@ public class TestAutoRebalance extends ZkStandAloneCMTestBaseWithPropertyServerC
public void testDropResourceAutoRebalance() throws Exception
{
// add a resource to be dropped
- _setupTool.addResourceToCluster(CLUSTER_NAME, "MyDB", _PARTITIONS, "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE+"");
+ _setupTool.addResourceToCluster(CLUSTER_NAME, "MyDB", _PARTITIONS, "OnlineOffline",
+ RebalanceMode.FULL_AUTO+"");
_setupTool.rebalanceStorageCluster(CLUSTER_NAME, "MyDB", 1);
@@ -157,7 +159,8 @@ public class TestAutoRebalance extends ZkStandAloneCMTestBaseWithPropertyServerC
ZK_ADDR);
// add a resource to be dropped
- _setupTool.addResourceToCluster(CLUSTER_NAME, "MyDB2", _PARTITIONS, "MasterSlave", IdealStateModeProperty.AUTO_REBALANCE+"");
+ _setupTool.addResourceToCluster(CLUSTER_NAME, "MyDB2", _PARTITIONS, "MasterSlave",
+ RebalanceMode.FULL_AUTO+"");
_setupTool.rebalanceStorageCluster(CLUSTER_NAME, "MyDB2", 3);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
index f26a867..d660e3f 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
@@ -36,7 +36,7 @@ import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.ExternalView;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterSetup;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.ClusterStateVerifier.ZkVerifier;
@@ -68,7 +68,8 @@ private static final Logger LOG = Logger.getLogger(TestAutoRebalancePartitionLim
// setup storage cluster
_setupTool.addCluster(CLUSTER_NAME, true);
- _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, 100, "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE+"", 0, 25);
+ _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, 100, "OnlineOffline",
+ RebalanceMode.FULL_AUTO+"", 0, 25);
for (int i = 0; i < NODE_NR; i++)
{
String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java b/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
index 70ab39c..1d34e5b 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
@@ -34,6 +34,7 @@ import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.ExternalView;
import org.apache.helix.model.IdealState;
import org.apache.helix.model.IdealState.IdealStateProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.ClusterStateVerifier.ZkVerifier;
import org.testng.Assert;
@@ -77,8 +78,7 @@ public class TestCustomizedIdealStateRebalancer extends ZkStandAloneCMTestBaseWi
{
_setupTool.addResourceToCluster(CLUSTER_NAME, db2, 60, "MasterSlave");
_setupTool.addResourceProperty(CLUSTER_NAME, db2, IdealStateProperty.REBALANCER_CLASS_NAME.toString(),
- TestCustomizedIdealStateRebalancer.TestRebalancer.class.getName()
- );
+ TestCustomizedIdealStateRebalancer.TestRebalancer.class.getName());
_setupTool.rebalanceStorageCluster(CLUSTER_NAME, db2, 3);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
index f154007..ae00657 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
@@ -32,7 +32,7 @@ import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.mock.controller.ClusterController;
import org.apache.helix.mock.participant.MockParticipant;
import org.apache.helix.model.IdealState;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterSetup;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
@@ -75,7 +75,7 @@ public class TestDisable extends ZkIntegrationTestBase
ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
Builder keyBuilder = accessor.keyBuilder();
IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
- idealState.setIdealStateMode(IdealStateModeProperty.CUSTOMIZED.toString());
+ idealState.setRebalanceMode(RebalanceMode.CUSTOMIZED);
accessor.setProperty(keyBuilder.idealStates("TestDB0"), idealState);
@@ -259,7 +259,7 @@ public class TestDisable extends ZkIntegrationTestBase
ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
Builder keyBuilder = accessor.keyBuilder();
IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
- idealState.setIdealStateMode(IdealStateModeProperty.CUSTOMIZED.toString());
+ idealState.setRebalanceMode(RebalanceMode.CUSTOMIZED);
accessor.setProperty(keyBuilder.idealStates("TestDB0"), idealState);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestDriver.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDriver.java b/helix-core/src/test/java/org/apache/helix/integration/TestDriver.java
index 74b3bdc..63009fd 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDriver.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDriver.java
@@ -37,8 +37,8 @@ import org.apache.helix.TestHelper.StartCMResult;
import org.apache.helix.controller.HelixControllerMain;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.helix.manager.zk.ZkClient;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
import org.apache.helix.model.IdealState.IdealStateProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.store.PropertyJsonSerializer;
import org.apache.helix.store.PropertyStoreException;
import org.apache.helix.tools.ClusterSetup;
@@ -367,8 +367,8 @@ public class TestDriver
ZNRecord destIS = DefaultIdealStateCalculator.calculateIdealState(instanceNames,
testInfo._numPartitionsPerDb, testInfo._replica - 1, dbName, "MASTER", "SLAVE");
// destIS.setId(dbName);
- destIS.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(),
- IdealStateModeProperty.CUSTOMIZED.toString());
+ destIS.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.CUSTOMIZED.toString());
destIS.setSimpleField(IdealStateProperty.NUM_PARTITIONS.toString(),
Integer.toString(testInfo._numPartitionsPerDb));
destIS.setSimpleField(IdealStateProperty.STATE_MODEL_DEF_REF.toString(), STATE_MODEL);
@@ -378,8 +378,8 @@ public class TestDriver
// + TEST_DB_PREFIX + i;
ZNRecord initIS = new ZNRecord(dbName); // _zkClient.<ZNRecord>
// readData(idealStatePath);
- initIS.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(),
- IdealStateModeProperty.CUSTOMIZED.toString());
+ initIS.setSimpleField(IdealStateProperty.REBALANCE_MODE.toString(),
+ RebalanceMode.CUSTOMIZED.toString());
initIS.setSimpleField(IdealStateProperty.NUM_PARTITIONS.toString(),
Integer.toString(testInfo._numPartitionsPerDb));
initIS.setSimpleField(IdealStateProperty.STATE_MODEL_DEF_REF.toString(), STATE_MODEL);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestInstanceAutoJoin.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestInstanceAutoJoin.java b/helix-core/src/test/java/org/apache/helix/integration/TestInstanceAutoJoin.java
index c9970e5..3ee96b8 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestInstanceAutoJoin.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestInstanceAutoJoin.java
@@ -6,7 +6,7 @@ import org.apache.helix.TestHelper;
import org.apache.helix.TestHelper.StartCMResult;
import org.apache.helix.manager.zk.ZKHelixManager;
import org.apache.helix.model.ConfigScope;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.builder.ConfigScopeBuilder;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -40,7 +40,8 @@ public class TestInstanceAutoJoin extends ZkStandAloneCMTestBase
HelixManager manager = _startCMResultMap.get(instanceName)._manager;
HelixDataAccessor accessor = manager.getHelixDataAccessor();
- _setupTool.addResourceToCluster(CLUSTER_NAME, db2, 60, "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE+"");
+ _setupTool.addResourceToCluster(CLUSTER_NAME, db2, 60, "OnlineOffline",
+ RebalanceMode.FULL_AUTO+"");
_setupTool.rebalanceStorageCluster(CLUSTER_NAME, db2, 1);
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestInvalidAutoIdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestInvalidAutoIdealState.java b/helix-core/src/test/java/org/apache/helix/integration/TestInvalidAutoIdealState.java
index f742a74..4e488f6 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestInvalidAutoIdealState.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestInvalidAutoIdealState.java
@@ -19,7 +19,6 @@ package org.apache.helix.integration;
* under the License.
*/
-import java.net.URL;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
@@ -27,24 +26,20 @@ import java.util.Map;
import org.apache.helix.HelixAdmin;
import org.apache.helix.HelixDataAccessor;
import org.apache.helix.TestHelper;
-import org.apache.helix.ZNRecord;
import org.apache.helix.ZkUnitTestBase;
import org.apache.helix.PropertyKey.Builder;
import org.apache.helix.manager.zk.ZKHelixAdmin;
-import org.apache.helix.manager.zk.ZKHelixDataAccessor;
-import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.mock.controller.ClusterController;
import org.apache.helix.mock.participant.MockParticipant;
import org.apache.helix.model.ExternalView;
import org.apache.helix.model.IdealState;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.helix.model.StateModelDefinition;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.StateModelConfigGenerator;
import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
import org.testng.Assert;
-import org.testng.annotations.Test;
// Helix-50: integration test for generate message based on state priority
public class TestInvalidAutoIdealState extends ZkUnitTestBase {
@@ -85,7 +80,7 @@ public class TestInvalidAutoIdealState extends ZkUnitTestBase {
// construct ideal-state manually
IdealState idealState = new IdealState(db);
- idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(2);
idealState.setReplicas("" + 2); // should be 3
idealState.setStateModelDefRef("MasterSlave");
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestRenamePartition.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestRenamePartition.java b/helix-core/src/test/java/org/apache/helix/integration/TestRenamePartition.java
index 4e52444..fe0cbc9 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestRenamePartition.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestRenamePartition.java
@@ -32,6 +32,7 @@ import org.apache.helix.manager.zk.ZKHelixDataAccessor;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.mock.participant.MockParticipant;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.tools.ClusterStateVerifier;
import org.apache.helix.tools.DefaultIdealStateCalculator;
import org.testng.Assert;
@@ -98,7 +99,7 @@ public class TestRenamePartition extends ZkIntegrationTestBase
ZNRecord destIS = DefaultIdealStateCalculator.calculateIdealState(instanceNames,
10, 3-1, "TestDB0", "MASTER", "SLAVE");
IdealState idealState = new IdealState(destIS);
- idealState.setIdealStateMode("CUSTOMIZED");
+ idealState.setRebalanceMode(RebalanceMode.CUSTOMIZED);
idealState.setReplicas("3");
idealState.setStateModelDefRef("MasterSlave");
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestStartMultipleControllersWithSameName.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestStartMultipleControllersWithSameName.java b/helix-core/src/test/java/org/apache/helix/integration/TestStartMultipleControllersWithSameName.java
index 27e6bdb..3bdeeec 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestStartMultipleControllersWithSameName.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestStartMultipleControllersWithSameName.java
@@ -26,7 +26,7 @@ import org.apache.helix.PropertyType;
import org.apache.helix.TestHelper;
import org.apache.helix.ZkTestHelper;
import org.apache.helix.mock.controller.ClusterController;
-import org.apache.helix.model.IdealState.IdealStateModeProperty;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.testng.Assert;
@@ -50,7 +50,7 @@ public class TestStartMultipleControllersWithSameName extends ZkIntegrationTestB
10, // partitions per resource
n, // number of nodes
1, // replicas
- "OnlineOffline", IdealStateModeProperty.AUTO_REBALANCE, true); // do
+ "OnlineOffline", RebalanceMode.FULL_AUTO, true); // do
// rebalance
// start controller
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/integration/TestZkReconnect.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestZkReconnect.java b/helix-core/src/test/java/org/apache/helix/integration/TestZkReconnect.java
index 0c261e2..1edfa30 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestZkReconnect.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestZkReconnect.java
@@ -21,7 +21,6 @@ package org.apache.helix.integration;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
@@ -92,7 +91,7 @@ public class TestZkReconnect {
LOG.info("Ideal state assignment");
HelixAdmin helixAdmin = participant.getClusterManagmentTool();
helixAdmin.addResource(clusterName, resourceName, 1, "OnlineOffline",
- IdealState.IdealStateModeProperty.CUSTOMIZED.toString());
+ IdealState.RebalanceMode.CUSTOMIZED.toString());
IdealState idealState = helixAdmin.getResourceIdealState(clusterName, resourceName);
idealState.setReplicas("1");
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/13d19e91/helix-core/src/test/java/org/apache/helix/manager/zk/TestZNRecordSizeLimit.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZNRecordSizeLimit.java b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZNRecordSizeLimit.java
index 403864a..158a705 100644
--- a/helix-core/src/test/java/org/apache/helix/manager/zk/TestZNRecordSizeLimit.java
+++ b/helix-core/src/test/java/org/apache/helix/manager/zk/TestZNRecordSizeLimit.java
@@ -34,6 +34,7 @@ import org.apache.helix.manager.zk.ZNRecordStreamingSerializer;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.manager.zk.ZkClient;
import org.apache.helix.model.IdealState;
+import org.apache.helix.model.IdealState.RebalanceMode;
import org.apache.helix.model.InstanceConfig;
import org.apache.log4j.Logger;
import org.testng.Assert;
@@ -130,7 +131,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
IdealState idealState = new IdealState("currentState");
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 0; i < 1024; i++)
@@ -148,7 +149,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
// legal sized data gets written to zk
idealState.getRecord().getSimpleFields().clear();
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 0; i < 900; i++)
@@ -164,7 +165,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
// oversized data should not update existing data on zk
idealState.getRecord().getSimpleFields().clear();
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 900; i < 1024; i++)
{
@@ -271,7 +272,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
// ZNRecord statusUpdates = new ZNRecord("statusUpdates");
IdealState idealState = new IdealState("currentState");
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 0; i < 1024; i++)
@@ -289,7 +290,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
// legal sized data gets written to zk
idealState.getRecord().getSimpleFields().clear();
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 0; i < 900; i++)
@@ -307,7 +308,7 @@ public class TestZNRecordSizeLimit extends ZkUnitTestBase
// oversized data should not update existing data on zk
idealState.getRecord().getSimpleFields().clear();
idealState.setStateModelDefRef("MasterSlave");
- idealState.setIdealStateMode("AUTO");
+ idealState.setRebalanceMode(RebalanceMode.SEMI_AUTO);
idealState.setNumPartitions(10);
for (int i = 900; i < 1024; i++)