diff options
author | Geir Storli <geirst@verizonmedia.com> | 2021-01-26 10:04:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 10:04:24 +0100 |
commit | ea435fb84f0a5413b6517a0ecaca01f2d8f9d4f2 (patch) | |
tree | e633018394e4554797dc66f5386c2e7e3452b600 /config-model | |
parent | 50d0d1f823bd46d5bcec1d6a6be80de574150676 (diff) | |
parent | 482f6ce55aa13fd1176177cabad7112a0249d895 (diff) |
Merge pull request #16206 from vespa-engine/geirst/cluster-controller-feed-block-limits-config
Add config to cluster controller on whether it should block feed baseā¦
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/content/ClusterControllerConfig.java | 14 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java | 22 |
2 files changed, 32 insertions, 4 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 882e56b82a3..ad5b472387f 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 @@ -131,5 +131,19 @@ public class ClusterControllerConfig extends AbstractConfigProducer<ClusterContr if (minNodeRatioPerGroup != null) { builder.min_node_ratio_per_group(minNodeRatioPerGroup); } + + setDefaultClusterFeedBlockLimits(builder); + } + + private static void setDefaultClusterFeedBlockLimits(FleetcontrollerConfig.Builder builder) { + // TODO: Override these based on resource-limits in services.xml (if they are specified). + // TODO: Choose other defaults when this is default enabled. + // Note: The resource categories must match the ones used in host info reporting + // between content nodes and cluster controller: + // storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp + builder.cluster_feed_block_limit.put("memory", 0.79); + builder.cluster_feed_block_limit.put("disk", 0.79); + builder.cluster_feed_block_limit.put("attribute-enum-store", 0.89); + builder.cluster_feed_block_limit.put("attribute-multi-value", 0.89); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java index 41fb4a3d35b..137f5351299 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java @@ -81,13 +81,27 @@ public class FleetControllerClusterTest { @Test public void min_node_ratio_per_group_is_implicitly_zero_when_omitted() { - FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder(); + var config = getConfigForBasicCluster(); + assertEquals(0.0, config.min_node_ratio_per_group(), 0.01); + } + + @Test + public void default_cluster_feed_block_limits_are_set() { + var config = getConfigForBasicCluster(); + var limits = config.cluster_feed_block_limit(); + assertEquals(4, limits.size()); + assertEquals(0.79, limits.get("memory"), 0.0001); + assertEquals(0.79, limits.get("disk"), 0.0001); + assertEquals(0.89, limits.get("attribute-enum-store"), 0.0001); + assertEquals(0.89, limits.get("attribute-multi-value"), 0.0001); + } + + FleetcontrollerConfig getConfigForBasicCluster() { + var builder = new FleetcontrollerConfig.Builder(); parse("<cluster id=\"storage\">\n" + " <documents/>\n" + "</cluster>"). getConfig(builder); - - FleetcontrollerConfig config = new FleetcontrollerConfig(builder); - assertEquals(0.0, config.min_node_ratio_per_group(), 0.01); + return new FleetcontrollerConfig(builder); } } |