summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-04-26 12:30:03 +0200
committerGitHub <noreply@github.com>2018-04-26 12:30:03 +0200
commitfa3121763f67a3f4989ef9e4db88c27a802e3783 (patch)
tree7f014772e6289f898306e5ed2d29ea8d2b15672f
parentea6c91d76a3e76ada0f0f12a25710832114f8553 (diff)
parent55a7823d04e5b35a19eddebb173d1e7e05e313e1 (diff)
Merge pull request #5708 from vespa-engine/bratseth/select-2-hosts-by-index
Select 2 cluster controllers by index
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java33
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java24
2 files changed, 29 insertions, 28 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index 9f92fff854c..c5899655599 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -53,29 +53,30 @@ import java.util.stream.Collectors;
* @author mostly somebody unknown
* @author bratseth
*/
-public class ContentCluster extends AbstractConfigProducer implements StorDistributionConfig.Producer,
- StorDistributormanagerConfig.Producer,
- FleetcontrollerConfig.Producer,
- MetricsmanagerConfig.Producer,
- MessagetyperouteselectorpolicyConfig.Producer,
- BucketspacesConfig.Producer {
+public class ContentCluster extends AbstractConfigProducer implements
+ StorDistributionConfig.Producer,
+ StorDistributormanagerConfig.Producer,
+ FleetcontrollerConfig.Producer,
+ MetricsmanagerConfig.Producer,
+ MessagetyperouteselectorpolicyConfig.Producer,
+ BucketspacesConfig.Producer {
// TODO: Make private
private String documentSelection;
- ContentSearchCluster search;
+ private ContentSearchCluster search;
private final boolean isHostedVespa;
private final Map<String, NewDocumentType> documentDefinitions;
private final Set<NewDocumentType> globallyDistributedDocuments;
// Experimental flag (TODO: remove when feature is enabled by default)
private boolean enableMultipleBucketSpaces = false;
- com.yahoo.vespa.model.content.StorageGroup rootGroup;
- StorageCluster storageNodes;
- DistributorCluster distributorNodes;
+ private com.yahoo.vespa.model.content.StorageGroup rootGroup;
+ private StorageCluster storageNodes;
+ private DistributorCluster distributorNodes;
private Redundancy redundancy;
- ClusterControllerConfig clusterControllerConfig;
- PersistenceEngine.PersistenceFactory persistenceFactory;
- String clusterName;
- Integer maxNodesPerMerge;
+ private ClusterControllerConfig clusterControllerConfig;
+ private PersistenceEngine.PersistenceFactory persistenceFactory;
+ private String clusterName;
+ private Integer maxNodesPerMerge;
private Zone zone;
/**
@@ -87,7 +88,7 @@ public class ContentCluster extends AbstractConfigProducer implements StorDistri
private ContainerCluster clusterControllers;
public enum DistributionMode { LEGACY, STRICT, LOOSE }
- DistributionMode distributionMode;
+ private DistributionMode distributionMode;
public static class Builder {
@@ -341,7 +342,7 @@ public class ContentCluster extends AbstractConfigProducer implements StorDistri
List<HostResource> hostsByIndex = drawContentHostsRecursively(count, true, rootGroup);
// if (hosts.size() < count) // supply with containers TODO: Currently disabled due to leading to topology change problems
// hosts.addAll(drawContainerHosts(count - hosts.size(), containers, new HashSet<>(hosts)));
- List<HostResource> hosts = HostResource.pickHosts(hostsByName, hostsByIndex, count, 1);
+ List<HostResource> hosts = HostResource.pickHosts(hostsByName, hostsByIndex, count, 2);
if (hosts.size() % 2 == 0) // ZK clusters of even sizes are less available (even in the size=2 case)
hosts = hosts.subList(0, hosts.size()-1);
return hosts;
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index dd5a15acb2a..56b9ad04f78 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -56,7 +56,7 @@ import static org.junit.Assert.fail;
/**
* Test cases for provisioning nodes to entire vespamodels
*
- * @author vegardh
+ * @author Vegard Havdal
* @author bratseth
*/
public class ModelProvisioningTest {
@@ -403,8 +403,8 @@ public class ModelProvisioningTest {
assertEquals(3, clusterControllers.getContainers().size());
assertEquals("bar-controllers", clusterControllers.getName());
assertEquals("default28", clusterControllers.getContainers().get(0).getHostName());
- assertEquals("default31", clusterControllers.getContainers().get(1).getHostName());
- assertEquals("default54", clusterControllers.getContainers().get(2).getHostName());
+ assertEquals("default54", clusterControllers.getContainers().get(1).getHostName());
+ assertEquals("default51", clusterControllers.getContainers().get(2).getHostName());
assertEquals(0, cluster.getRootGroup().getNodes().size());
assertEquals(9, cluster.getRootGroup().getSubgroups().size());
assertThat(cluster.getRootGroup().getSubgroups().get(0).getIndex(), is("0"));
@@ -442,8 +442,8 @@ public class ModelProvisioningTest {
assertEquals(3, clusterControllers.getContainers().size());
assertEquals("baz-controllers", clusterControllers.getName());
assertEquals("default01", clusterControllers.getContainers().get(0).getHostName());
- assertEquals("default02", clusterControllers.getContainers().get(1).getHostName());
- assertEquals("default27", clusterControllers.getContainers().get(2).getHostName());
+ assertEquals("default27", clusterControllers.getContainers().get(1).getHostName());
+ assertEquals("default26", clusterControllers.getContainers().get(2).getHostName());
assertEquals(0, cluster.getRootGroup().getNodes().size());
assertEquals(27, cluster.getRootGroup().getSubgroups().size());
assertThat(cluster.getRootGroup().getSubgroups().get(0).getIndex(), is("0"));
@@ -495,8 +495,8 @@ public class ModelProvisioningTest {
assertEquals(3, clusterControllers.getContainers().size());
assertEquals("bar-controllers", clusterControllers.getName());
assertEquals("default01", clusterControllers.getContainers().get(0).getHostName());
- assertEquals("default02", clusterControllers.getContainers().get(1).getHostName());
- assertEquals("default08", clusterControllers.getContainers().get(2).getHostName());
+ assertEquals("default08", clusterControllers.getContainers().get(1).getHostName());
+ assertEquals("default07", clusterControllers.getContainers().get(2).getHostName());
assertEquals(0, cluster.getRootGroup().getNodes().size());
assertEquals(8, cluster.getRootGroup().getSubgroups().size());
assertEquals(8, cluster.distributionBits());
@@ -555,7 +555,7 @@ public class ModelProvisioningTest {
assertEquals("default02", clusterControllers.getContainers().get(1).getHostName());
assertEquals("default04", clusterControllers.getContainers().get(2).getHostName());
assertEquals("default05", clusterControllers.getContainers().get(3).getHostName());
- assertEquals("default07", clusterControllers.getContainers().get(4).getHostName());
+ assertEquals("default09", clusterControllers.getContainers().get(4).getHostName());
assertEquals("default09", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName());
assertEquals("default08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getHostName());
assertEquals("default06", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName());
@@ -592,8 +592,8 @@ public class ModelProvisioningTest {
assertEquals("We get the closest odd number", 3, clusterControllers.getContainers().size());
assertEquals("bar-controllers", clusterControllers.getName());
assertEquals("default01", clusterControllers.getContainers().get(0).getHostName());
- assertEquals("default03", clusterControllers.getContainers().get(1).getHostName());
- assertEquals("default08", clusterControllers.getContainers().get(2).getHostName());
+ assertEquals("default08", clusterControllers.getContainers().get(1).getHostName());
+ assertEquals("default06", clusterControllers.getContainers().get(2).getHostName());
}
@Test
@@ -659,8 +659,8 @@ public class ModelProvisioningTest {
assertEquals(3, clusterControllers.getContainers().size());
assertEquals("bar-controllers", clusterControllers.getName());
assertEquals("Skipping retired default09", "default01", clusterControllers.getContainers().get(0).getHostName());
- assertEquals("Skipping retired default03", "default04", clusterControllers.getContainers().get(1).getHostName());
- assertEquals("Skipping retired default06", "default08", clusterControllers.getContainers().get(2).getHostName());
+ assertEquals("Skipping retired default06", "default08", clusterControllers.getContainers().get(1).getHostName());
+ assertEquals("Skipping retired default03", "default05", clusterControllers.getContainers().get(2).getHostName());
}
@Test