summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-07-04 15:19:45 +0200
committerHarald Musum <musum@yahooinc.com>2023-07-04 15:19:45 +0200
commitb3080e117fdabb6068913fe431ec49af139ec1b7 (patch)
tree726fa555cde78b259553a9ddb136657c41f8e6bd
parent25a2ec59a6fd3ff51150ec66ebf7bfd04eadc5b1 (diff)
Rename config element to groups-allowed-down-ratio
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java12
-rw-r--r--config-model/src/main/resources/schema/content.rnc2
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java54
4 files changed, 38 insertions, 32 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
index c9e71e7b58d..538a1b49d24 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java
@@ -153,13 +153,13 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
private static Optional<Integer> maxGroupsAllowedDown(ModelElement tuning, boolean allowMoreThanOneContentGroupDown, int numberOfLeafGroups) {
- var minGroupsUpRatio = tuning.childAsDouble("min-group-up-ratio");
+ var groupsAllowedDownRatio = tuning.childAsDouble("groups-allowed-down-ratio");
- if (minGroupsUpRatio != null) {
- if (minGroupsUpRatio < 0.01 || minGroupsUpRatio > 1)
- throw new IllegalArgumentException("min-groups-up-ratio must be between 0.01 and 1, got " + minGroupsUpRatio);
- double minGroupsUp = minGroupsUpRatio * numberOfLeafGroups;
- var maxGroupsAllowedDown = Math.max(1, numberOfLeafGroups - (int) Math.ceil(minGroupsUp));
+ if (groupsAllowedDownRatio != null) {
+ if (groupsAllowedDownRatio < 0 || groupsAllowedDownRatio > 1)
+ throw new IllegalArgumentException("groups-allowed-down-ratio must be between 0 and 1, got " + groupsAllowedDownRatio);
+
+ var maxGroupsAllowedDown = Math.max(1, (int) Math.floor(groupsAllowedDownRatio * numberOfLeafGroups));
return allowMoreThanOneContentGroupDown ? Optional.of(maxGroupsAllowedDown) : Optional.empty();
}
diff --git a/config-model/src/main/resources/schema/content.rnc b/config-model/src/main/resources/schema/content.rnc
index 9705e2d8f5f..c265350cb85 100644
--- a/config-model/src/main/resources/schema/content.rnc
+++ b/config-model/src/main/resources/schema/content.rnc
@@ -82,7 +82,7 @@ ClusterControllerTuning = element cluster-controller {
element stable-state-period { xsd:string { pattern = "([0-9\.]+)\s*([a-z]+)?" } }? &
element min-distributor-up-ratio { xsd:double }? &
element min-storage-up-ratio { xsd:double }? &
- element min-group-up-ratio { xsd:double }?
+ element groups-allowed-down-ratio { xsd:double }?
}
DispatchTuning = element dispatch {
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 730736a128d..4ac9fdef9a6 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
@@ -2375,7 +2375,7 @@ public class ModelProvisioningTest {
" <nodes count='4' groups='4'/>" +
" <tuning>" +
" <cluster-controller>" +
- " <min-group-up-ratio>0.5</min-group-up-ratio>" +
+ " <groups-allowed-down-ratio>0.5</groups-allowed-down-ratio>" +
" </cluster-controller>" +
" </tuning>" +
" </content>" +
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
index 7034a6878e1..ef2767249a5 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
@@ -1423,26 +1423,32 @@ public class ContentClusterTest extends ContentBaseTest {
@Test
void testGroupsAllowedToBeDown() {
- assertMaxAllowedGroupsDown(1, 0.5, 1);
- assertMaxAllowedGroupsDown(2, 0.5, 1);
- assertMaxAllowedGroupsDown(3, 0.5, 1);
- assertMaxAllowedGroupsDown(4, 0.5, 2);
- assertMaxAllowedGroupsDown(5, 0.5, 2);
- assertMaxAllowedGroupsDown(6, 0.5, 3);
-
- assertMaxAllowedGroupsDown(1, 0.33, 1);
- assertMaxAllowedGroupsDown(2, 0.33, 1);
- assertMaxAllowedGroupsDown(3, 0.33, 2);
- assertMaxAllowedGroupsDown(4, 0.33, 2);
- assertMaxAllowedGroupsDown(5, 0.33, 3);
- assertMaxAllowedGroupsDown(6, 0.33, 4);
-
- assertMaxAllowedGroupsDown(1, 0.67, 1);
- assertMaxAllowedGroupsDown(2, 0.67, 1);
- assertMaxAllowedGroupsDown(3, 0.67, 1);
- assertMaxAllowedGroupsDown(4, 0.67, 1);
- assertMaxAllowedGroupsDown(5, 0.67, 1);
- assertMaxAllowedGroupsDown(6, 0.67, 1);
+ assertGroupsAllowedsDown(1, 0.5, 1);
+ assertGroupsAllowedsDown(2, 0.5, 1);
+ assertGroupsAllowedsDown(3, 0.5, 1);
+ assertGroupsAllowedsDown(4, 0.5, 2);
+ assertGroupsAllowedsDown(5, 0.5, 2);
+ assertGroupsAllowedsDown(6, 0.5, 3);
+
+ assertGroupsAllowedsDown(1, 0.33, 1);
+ assertGroupsAllowedsDown(2, 0.33, 1);
+ assertGroupsAllowedsDown(3, 0.33, 1);
+ assertGroupsAllowedsDown(4, 0.33, 1);
+ assertGroupsAllowedsDown(5, 0.33, 1);
+ assertGroupsAllowedsDown(6, 0.33, 1);
+
+ assertGroupsAllowedsDown(1, 0.67, 1);
+ assertGroupsAllowedsDown(2, 0.67, 1);
+ assertGroupsAllowedsDown(3, 0.67, 2);
+ assertGroupsAllowedsDown(4, 0.67, 2);
+ assertGroupsAllowedsDown(5, 0.67, 3);
+ assertGroupsAllowedsDown(6, 0.67, 4);
+
+ assertGroupsAllowedsDown(1, 0, 1);
+ assertGroupsAllowedsDown(2, 0, 1);
+
+ assertGroupsAllowedsDown(1, 1, 1);
+ assertGroupsAllowedsDown(2, 1, 2);
}
private void assertIndexingDocprocEnabled(boolean indexed, boolean force, boolean expEnabled) {
@@ -1482,15 +1488,15 @@ public class ContentClusterTest extends ContentBaseTest {
assertIndexingDocprocEnabled(false, true, true);
}
- private void assertMaxAllowedGroupsDown(int groupCount, double minGroupUpRatio, int expectedMaxAllowedGroupsDown) {
- var services = servicesWithGroups(groupCount, minGroupUpRatio);
+ private void assertGroupsAllowedsDown(int groupCount, double groupsAllowedDown, int expectedGroupsAllowedDown) {
+ var services = servicesWithGroups(groupCount, groupsAllowedDown);
var model = createEnd2EndOneNode(new TestProperties().setAllowMoreThanOneContentGroupDown(true), services);
var fleetControllerConfigBuilder = new FleetcontrollerConfig.Builder();
model.getConfig(fleetControllerConfigBuilder, "admin/cluster-controllers/0/components/clustercontroller-storage-configurer");
var config = fleetControllerConfigBuilder.build();
- assertEquals(expectedMaxAllowedGroupsDown, config.max_number_of_groups_allowed_to_be_down());
+ assertEquals(expectedGroupsAllowedDown, config.max_number_of_groups_allowed_to_be_down());
}
private String servicesWithGroups(int groupCount, double minGroupUpRatio) {
@@ -1522,7 +1528,7 @@ public class ContentClusterTest extends ContentBaseTest {
String.format(" </group>" +
" <tuning>" +
" <cluster-controller>" +
- " <min-group-up-ratio>%f</min-group-up-ratio>" +
+ " <groups-allowed-down-ratio>%f</groups-allowed-down-ratio>" +
" </cluster-controller>" +
" </tuning>" +
" <engine>" +