aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-04-17 09:01:06 +0200
committerHarald Musum <musum@yahooinc.com>2023-04-17 09:01:06 +0200
commit9e30a3f0e6267191a591454ea673947fc43dd70b (patch)
tree2f786f7a3e251ded3907964464f4ccce3f3750aa /config-model/src/main/java/com/yahoo
parent8ee27958b2f51eff74f3e4e8eff945f186243a92 (diff)
Add flag for allowing more than one content group down
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java21
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java3
2 files changed, 17 insertions, 7 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 8ec4ae35658..201e0b5693a 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
@@ -14,8 +14,6 @@ import org.w3c.dom.Element;
/**
* Config generation for common parameters for all fleet controllers.
- *
- * TODO: Author
*/
public class ClusterControllerConfig extends AnyConfigProducer implements FleetcontrollerConfig.Producer {
@@ -23,11 +21,16 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
private final String clusterName;
private final ModelElement clusterElement;
private final ResourceLimits resourceLimits;
+ private final boolean allowMoreThanOneContentGroupDown;
- public Builder(String clusterName, ModelElement clusterElement, ResourceLimits resourceLimits) {
+ public Builder(String clusterName,
+ ModelElement clusterElement,
+ ResourceLimits resourceLimits,
+ boolean allowMoreThanOneContentGroupDown) {
this.clusterName = clusterName;
this.clusterElement = clusterElement;
this.resourceLimits = resourceLimits;
+ this.allowMoreThanOneContentGroupDown = allowMoreThanOneContentGroupDown;
}
@Override
@@ -53,13 +56,15 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
tuning.childAsDouble("min-storage-up-ratio"),
bucketSplittingMinimumBits,
minNodeRatioPerGroup,
- resourceLimits);
+ resourceLimits,
+ allowMoreThanOneContentGroupDown);
} else {
return new ClusterControllerConfig(ancestor, clusterName,
null, null, null, null, null, null,
bucketSplittingMinimumBits,
minNodeRatioPerGroup,
- resourceLimits);
+ resourceLimits,
+ allowMoreThanOneContentGroupDown);
}
}
}
@@ -74,6 +79,7 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
private final Integer minSplitBits;
private final Double minNodeRatioPerGroup;
private final ResourceLimits resourceLimits;
+ private final boolean allowMoreThanOneContentGroupDown;
// TODO refactor; too many args
private ClusterControllerConfig(TreeConfigProducer<?> parent,
@@ -86,7 +92,8 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
Double minStorageUpRatio,
Integer minSplitBits,
Double minNodeRatioPerGroup,
- ResourceLimits resourceLimits) {
+ ResourceLimits resourceLimits,
+ boolean allowMoreThanOneContentGroupDown) {
super(parent, "fleetcontroller");
this.clusterName = clusterName;
@@ -99,6 +106,7 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
this.minSplitBits = minSplitBits;
this.minNodeRatioPerGroup = minNodeRatioPerGroup;
this.resourceLimits = resourceLimits;
+ this.allowMoreThanOneContentGroupDown = allowMoreThanOneContentGroupDown;
}
@Override
@@ -141,6 +149,7 @@ public class ClusterControllerConfig extends AnyConfigProducer implements Fleetc
builder.min_node_ratio_per_group(minNodeRatioPerGroup);
}
resourceLimits.getConfig(builder);
+ builder.max_number_of_groups_allowed_to_be_down(allowMoreThanOneContentGroupDown ? 1 : -1);
}
}
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 7f4fc4cd89d..217c26516a9 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
@@ -127,7 +127,8 @@ public class ContentCluster extends TreeConfigProducer<AnyConfigProducer> implem
.build(contentElement);
c.clusterControllerConfig = new ClusterControllerConfig.Builder(clusterId,
contentElement,
- resourceLimits.getClusterControllerLimits())
+ resourceLimits.getClusterControllerLimits(),
+ deployState.featureFlags().allowMoreThanOneContentGroupDown(new ClusterSpec.Id(clusterId)))
.build(deployState, c, contentElement.getXml());
c.search = new ContentSearchCluster.Builder(documentDefinitions,
globallyDistributedDocuments,