summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-08-16 10:56:18 +0200
committerGitHub <noreply@github.com>2017-08-16 10:56:18 +0200
commit8eb491d00832732e669a3b34c44451bb32aab899 (patch)
tree142999398ff658c71e91f31fe295b6b2046ec625 /config-model
parent92653789e4f355b8aaaf6bcd1a1d8fb0b3f25eb7 (diff)
parent3b5b9ff6501655c6509ea3a181c36aec6e3cc45b (diff)
Merge pull request #3116 from vespa-engine/hmusum/set-default-slobroks-per-container-cluster-to-2
Set default number of slobroks per container cluster to 2
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java14
-rw-r--r--config-model/src/main/resources/schema/admin.rnc6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java82
3 files changed, 37 insertions, 65 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
index 7795e53832d..5e22ba3961f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
@@ -49,17 +49,16 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
Optional<NodesSpecification> requestedLogservers =
NodesSpecification.optionalDedicatedFromParent(adminElement.getChild("logservers"), version);
- int minSlobroksPerCluster = getMinSlobroksPerContainerCluster(adminElement);
- assignSlobroks(requestedSlobroks.orElse(NodesSpecification.nonDedicated(3, version)), admin, minSlobroksPerCluster);
+ assignSlobroks(requestedSlobroks.orElse(NodesSpecification.nonDedicated(3, version)), admin);
assignLogserver(requestedLogservers.orElse(NodesSpecification.nonDedicated(1, version)), admin);
}
- private void assignSlobroks(NodesSpecification nodesSpecification, Admin admin, int minSlobroksPerContainerCluster) {
+ private void assignSlobroks(NodesSpecification nodesSpecification, Admin admin) {
if (nodesSpecification.isDedicated()) {
createSlobroks(admin, allocateHosts(admin.getHostSystem(), "slobroks", nodesSpecification));
}
else {
- createSlobroks(admin, pickContainerHosts(nodesSpecification.count(), minSlobroksPerContainerCluster));
+ createSlobroks(admin, pickContainerHosts(nodesSpecification.count(), 2));
}
}
@@ -145,11 +144,4 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
admin.addSlobroks(slobroks);
}
- private int getMinSlobroksPerContainerCluster(ModelElement adminElement) {
- ModelElement minNodes = adminElement.getChild("minSlobroksPerCluster");
- if (minNodes == null) return 1; //default
-
- return (int) minNodes.asLong();
- }
-
}
diff --git a/config-model/src/main/resources/schema/admin.rnc b/config-model/src/main/resources/schema/admin.rnc
index c74a7cb6218..3db16f74e77 100644
--- a/config-model/src/main/resources/schema/admin.rnc
+++ b/config-model/src/main/resources/schema/admin.rnc
@@ -5,7 +5,7 @@ AdminV2 =
element admin {
attribute version { "2.0" } &
element adminserver { service.attlist } &
- element minSlobroksPerCluster { xsd:positiveInteger }? &
+ element minSlobroksPerCluster { xsd:positiveInteger }? & # TODO: Remove when no applications use this
GenericConfig* &
LogServer? &
(ConfigServer | ConfigServers)? &
@@ -19,7 +19,7 @@ AdminV2 =
AdminV3 =
element admin {
attribute version { "3.0" } &
- element minSlobroksPerCluster { xsd:positiveInteger }? &
+ element minSlobroksPerCluster { xsd:positiveInteger }? & # TODO: Remove when no applications use this
GenericConfig* &
Nodes
}
@@ -27,7 +27,7 @@ AdminV3 =
AdminV4 =
element admin {
attribute version { "4.0" } &
- element minSlobroksPerCluster { xsd:positiveInteger }? &
+ element minSlobroksPerCluster { xsd:positiveInteger }? & # TODO: Remove when no applications use this
AdminV4Slobroks? &
AdminV4LogServers? &
GenericConfig* &
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
index c196318bde2..f6e7d50f643 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
@@ -82,7 +82,7 @@ public class DedicatedAdminV4Test {
}
@Test
- public void testModelBuildingWithConfiguredMinSlobrokCountPerCluster() throws IOException, SAXException {
+ public void testThatThereAre2SlobroksPerContainerCluster() throws IOException, SAXException {
String hosts = "<hosts>"
+ " <host name=\"myhost0\">"
+ " <alias>node0</alias>"
@@ -98,56 +98,36 @@ public class DedicatedAdminV4Test {
+ " </host>"
+ "</hosts>";
- {
- VespaModel model = createModel(hosts, servicesWithMinSlobroksPerCluster(1));
- assertEquals(4, model.getHosts().size());
-
- // 3 slobroks, 1 per cluster
- assertHostContainsServices(model, "hosts/myhost0",
- "slobrok", "logd", "filedistributorservice", "logserver", "qrserver");
- assertHostContainsServices(model, "hosts/myhost1",
- "logd", "filedistributorservice", "qrserver");
- assertHostContainsServices(model, "hosts/myhost2",
- "slobrok", "logd", "filedistributorservice", "qrserver");
- assertHostContainsServices(model, "hosts/myhost3",
- "slobrok", "logd", "filedistributorservice", "qrserver");
- }
-
- {
- VespaModel model = createModel(hosts, servicesWithMinSlobroksPerCluster(2));
- assertEquals(4, model.getHosts().size());
-
- // 4 slobroks, 2 per cluster where possible
- assertHostContainsServices(model, "hosts/myhost0",
- "slobrok", "logd", "filedistributorservice", "logserver", "qrserver");
- assertHostContainsServices(model, "hosts/myhost1",
- "slobrok", "logd", "filedistributorservice", "qrserver");
- assertHostContainsServices(model, "hosts/myhost2",
- "slobrok", "logd", "filedistributorservice", "qrserver");
- assertHostContainsServices(model, "hosts/myhost3",
- "slobrok", "logd", "filedistributorservice", "qrserver");
- }
- }
-
- private String servicesWithMinSlobroksPerCluster(int count) {
- return "<services>" +
- " <admin version='4.0'>" +
- " <minSlobroksPerCluster>" + count + "</minSlobroksPerCluster>" +
- " <nodes count='1' dedicated='true' />" +
- " </admin>" +
- " <jdisc id='a' version='1.0'>" +
- " <search />" +
- " <nodes count='2' dedicated='true' />" +
- " </jdisc>" +
- " <jdisc id='b' version='1.0'>" +
- " <search />" +
- " <nodes count='1' dedicated='true' />" +
- " </jdisc>" +
- " <jdisc id='c' version='1.0'>" +
- " <search />" +
- " <nodes count='1' dedicated='true' />" +
- " </jdisc>" +
- "</services>";
+ String servicesWith3JdiscClusters = "<services>" +
+ " <admin version='4.0'>" +
+ " <nodes count='1' dedicated='true' />" +
+ " </admin>" +
+ " <jdisc id='a' version='1.0'>" +
+ " <search />" +
+ " <nodes count='2' dedicated='true' />" +
+ " </jdisc>" +
+ " <jdisc id='b' version='1.0'>" +
+ " <search />" +
+ " <nodes count='1' dedicated='true' />" +
+ " </jdisc>" +
+ " <jdisc id='c' version='1.0'>" +
+ " <search />" +
+ " <nodes count='1' dedicated='true' />" +
+ " </jdisc>" +
+ "</services>";
+
+ VespaModel model = createModel(hosts, servicesWith3JdiscClusters);
+ assertEquals(4, model.getHosts().size());
+
+ // 4 slobroks, 2 per cluster where possible
+ assertHostContainsServices(model, "hosts/myhost0",
+ "slobrok", "logd", "filedistributorservice", "logserver", "qrserver");
+ assertHostContainsServices(model, "hosts/myhost1",
+ "slobrok", "logd", "filedistributorservice", "qrserver");
+ assertHostContainsServices(model, "hosts/myhost2",
+ "slobrok", "logd", "filedistributorservice", "qrserver");
+ assertHostContainsServices(model, "hosts/myhost3",
+ "slobrok", "logd", "filedistributorservice", "qrserver");
}
private Set<String> serviceNames(VespaModel model, String hostname) {