diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-10-06 16:22:34 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-10-06 16:22:34 +0200 |
commit | e31038dba94fb2e7edf5136b77b538c1a5bee687 (patch) | |
tree | c01f1224f40732e94f26698a68841abaffbbfa29 | |
parent | e9d2e1c3c174bb733f4420bd5f0f72311111e092 (diff) |
GC remaining persistence throttling tuning flags.
6 files changed, 4 insertions, 110 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index d2834cd5260..99bcd59d791 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -106,10 +106,6 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"arnej"}) default boolean useV8GeoPositions() { return false; } @ModelFeatureFlag(owners = {"baldersheim", "geirst", "toregge"}) default int maxCompactBuffers() { return 1; } @ModelFeatureFlag(owners = {"arnej", "andreer"}) default List<String> ignoredHttpUserAgents() { return List.of(); } - @ModelFeatureFlag(owners = {"vekterli"}) default double persistenceThrottlingWsDecrementFactor() { throw new UnsupportedOperationException("TODO specify default value"); } - @ModelFeatureFlag(owners = {"vekterli"}) default double persistenceThrottlingWsBackoff() { throw new UnsupportedOperationException("TODO specify default value"); } - @ModelFeatureFlag(owners = {"vekterli"}) default int persistenceThrottlingWindowSize() { throw new UnsupportedOperationException("TODO specify default value"); } - @ModelFeatureFlag(owners = {"vekterli"}) default double persistenceThrottlingWsResizeRate() { throw new UnsupportedOperationException("TODO specify default value"); } @ModelFeatureFlag(owners = {"hmusum"}) default Architecture adminClusterArchitecture() { return Architecture.getDefault(); } @ModelFeatureFlag(owners = {"tokle"}) default boolean enableProxyProtocolMixedMode() { return true; } @ModelFeatureFlag(owners = {"arnej"}) default String logFileCompressionAlgorithm(String defVal) { return defVal; } @@ -131,6 +127,10 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"baldersheim"}, removeAfter="7.last") default int availableProcessors() { return 1; } @ModelFeatureFlag(owners = {"vekterli", "geirst"}, removeAfter="7.last") default boolean unorderedMergeChaining() { return true; } @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default String mergeThrottlingPolicy() { return "STATIC"; } + @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default double persistenceThrottlingWsDecrementFactor() { return 1.2; } + @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default double persistenceThrottlingWsBackoff() { return 0.95; } + @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default int persistenceThrottlingWindowSize() { return -1; } + @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default double persistenceThrottlingWsResizeRate() { return 3; } @ModelFeatureFlag(owners = {"vekterli"}, removeAfter="7.last") default boolean persistenceThrottlingOfMergeFeedOps() { return true; } } diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java index e4234581cc1..2520dda2ed0 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java @@ -67,10 +67,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private int maxUnCommittedMemory = 123456; private List<String> zoneDnsSuffixes = List.of(); private int maxCompactBuffers = 1; - private double persistenceThrottlingWsDecrementFactor = 1.2; - private double persistenceThrottlingWsBackoff = 0.95; - private int persistenceThrottlingWindowSize = -1; - private double persistenceThrottlingWsResizeRate = 3.0; private boolean useV8GeoPositions = true; private List<String> environmentVariables = List.of(); private boolean loadCodeAsHugePages = false; @@ -125,10 +121,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public int maxUnCommittedMemory() { return maxUnCommittedMemory; } @Override public List<String> zoneDnsSuffixes() { return zoneDnsSuffixes; } @Override public int maxCompactBuffers() { return maxCompactBuffers; } - @Override public double persistenceThrottlingWsDecrementFactor() { return persistenceThrottlingWsDecrementFactor; } - @Override public double persistenceThrottlingWsBackoff() { return persistenceThrottlingWsBackoff; } - @Override public int persistenceThrottlingWindowSize() { return persistenceThrottlingWindowSize; } - @Override public double persistenceThrottlingWsResizeRate() { return persistenceThrottlingWsResizeRate; } @Override public boolean useV8GeoPositions() { return useV8GeoPositions; } @Override public List<String> environmentVariables() { return environmentVariables; } @Override public Architecture adminClusterArchitecture() { return adminClusterNodeResourcesArchitecture; } @@ -323,26 +315,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } - public TestProperties setPersistenceThrottlingWsDecrementFactor(double factor) { - this.persistenceThrottlingWsDecrementFactor = factor; - return this; - } - - public TestProperties setPersistenceThrottlingWsBackoff(double backoff) { - this.persistenceThrottlingWsBackoff = backoff; - return this; - } - - public TestProperties setPersistenceThrottlingWindowSize(int windowSize) { - this.persistenceThrottlingWindowSize = windowSize; - return this; - } - - public TestProperties setPersistenceThrottlingWsResizeRate(double resizeRate) { - this.persistenceThrottlingWsResizeRate = resizeRate; - return this; - } - public TestProperties setUseV8GeoPositions(boolean value) { this.useV8GeoPositions = value; return this; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/FileStorProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/FileStorProducer.java index ff905187969..092b94d72dc 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/FileStorProducer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/FileStorProducer.java @@ -46,11 +46,6 @@ public class FileStorProducer implements StorFilestorConfig.Producer { private final ContentCluster cluster; private final int responseNumThreads; private final StorFilestorConfig.Response_sequencer_type.Enum responseSequencerType; - private final double persistenceThrottlingWsDecrementFactor; - private final double persistenceThrottlingWsBackoff; - private final int persistenceThrottlingWindowSize; - private final double persistenceThrottlingWsResizeRate; - private final boolean persistenceThrottlingOfMergeFeedOps; private final boolean useAsyncMessageHandlingOnSchedule; private static StorFilestorConfig.Response_sequencer_type.Enum convertResponseSequencerType(String sequencerType) { @@ -66,11 +61,6 @@ public class FileStorProducer implements StorFilestorConfig.Producer { this.cluster = parent; this.responseNumThreads = featureFlags.defaultNumResponseThreads(); this.responseSequencerType = convertResponseSequencerType(featureFlags.responseSequencerType()); - this.persistenceThrottlingWsDecrementFactor = featureFlags.persistenceThrottlingWsDecrementFactor(); - this.persistenceThrottlingWsBackoff = featureFlags.persistenceThrottlingWsBackoff(); - this.persistenceThrottlingWindowSize = featureFlags.persistenceThrottlingWindowSize(); - this.persistenceThrottlingWsResizeRate = featureFlags.persistenceThrottlingWsResizeRate(); - this.persistenceThrottlingOfMergeFeedOps = featureFlags.persistenceThrottlingOfMergeFeedOps(); this.useAsyncMessageHandlingOnSchedule = featureFlags.useAsyncMessageHandlingOnSchedule(); } @@ -84,14 +74,6 @@ public class FileStorProducer implements StorFilestorConfig.Producer { builder.response_sequencer_type(responseSequencerType); builder.use_async_message_handling_on_schedule(useAsyncMessageHandlingOnSchedule); var throttleBuilder = new StorFilestorConfig.Async_operation_throttler.Builder(); - throttleBuilder.window_size_decrement_factor(persistenceThrottlingWsDecrementFactor); - throttleBuilder.window_size_backoff(persistenceThrottlingWsBackoff); - if (persistenceThrottlingWindowSize > 0) { - throttleBuilder.min_window_size(persistenceThrottlingWindowSize); - throttleBuilder.max_window_size(persistenceThrottlingWindowSize); - } - throttleBuilder.resize_rate(persistenceThrottlingWsResizeRate); - throttleBuilder.throttle_individual_merge_feed_ops(persistenceThrottlingOfMergeFeedOps); builder.async_operation_throttler(throttleBuilder); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java index 2a9cb2733fb..48cee3fd397 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageClusterTest.java @@ -327,21 +327,6 @@ public class StorageClusterTest { } @Test - void persistence_dynamic_throttling_parameters_can_be_set_through_feature_flags() { - var config = filestorConfigFromProducer(simpleCluster(new TestProperties() - .setPersistenceThrottlingWsDecrementFactor(1.5) - .setPersistenceThrottlingWsBackoff(0.8) - .setPersistenceThrottlingWindowSize(42) - .setPersistenceThrottlingWsResizeRate(2.5))); - assertEquals(1.5, config.async_operation_throttler().window_size_decrement_factor(), 0.0001); - assertEquals(0.8, config.async_operation_throttler().window_size_backoff(), 0.0001); - // If window size is set, min and max are locked to the same value - assertEquals(42, config.async_operation_throttler().min_window_size()); - assertEquals(42, config.async_operation_throttler().max_window_size()); - assertEquals(2.5, config.async_operation_throttler().resize_rate(), 0.0001); - } - - @Test void integrity_checker_explicitly_disabled_when_not_running_with_vds_provider() { StorIntegritycheckerConfig.Builder builder = new StorIntegritycheckerConfig.Builder(); parse(cluster("bees", "")).getConfig(builder); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index 17247b602d2..f9d8c37ea9d 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -194,10 +194,6 @@ public class ModelContextImpl implements ModelContext { private final boolean useV8GeoPositions; private final int maxCompactBuffers; private final List<String> ignoredHttpUserAgents; - private final double persistenceThrottlingWsDecrementFactor; - private final double persistenceThrottlingWsBackoff; - private final int persistenceThrottlingWindowSize; - private final double persistenceThrottlingWsResizeRate; private final boolean useQrserverServiceName; private final boolean avoidRenamingSummaryFeatures; private final Architecture adminClusterArchitecture; @@ -243,10 +239,6 @@ public class ModelContextImpl implements ModelContext { this.useV8GeoPositions = flagValue(source, appId, version, Flags.USE_V8_GEO_POSITIONS); this.maxCompactBuffers = flagValue(source, appId, version, Flags.MAX_COMPACT_BUFFERS); this.ignoredHttpUserAgents = flagValue(source, appId, version, PermanentFlags.IGNORED_HTTP_USER_AGENTS); - this.persistenceThrottlingWsDecrementFactor = flagValue(source, appId, version, Flags.PERSISTENCE_THROTTLING_WS_DECREMENT_FACTOR); - this.persistenceThrottlingWsBackoff = flagValue(source, appId, version, Flags.PERSISTENCE_THROTTLING_WS_BACKOFF); - this.persistenceThrottlingWindowSize = flagValue(source, appId, version, Flags.PERSISTENCE_THROTTLING_WINDOW_SIZE); - this.persistenceThrottlingWsResizeRate = flagValue(source, appId, version, Flags.PERSISTENCE_THROTTLING_WS_RESIZE_RATE); this.useQrserverServiceName = flagValue(source, appId, version, Flags.USE_QRSERVER_SERVICE_NAME); this.avoidRenamingSummaryFeatures = flagValue(source, appId, version, Flags.AVOID_RENAMING_SUMMARY_FEATURES); this.adminClusterArchitecture = Architecture.valueOf(flagValue(source, appId, version, PermanentFlags.ADMIN_CLUSTER_NODE_ARCHITECTURE)); @@ -295,10 +287,6 @@ public class ModelContextImpl implements ModelContext { @Override public boolean useV8GeoPositions() { return useV8GeoPositions; } @Override public int maxCompactBuffers() { return maxCompactBuffers; } @Override public List<String> ignoredHttpUserAgents() { return ignoredHttpUserAgents; } - @Override public double persistenceThrottlingWsDecrementFactor() { return persistenceThrottlingWsDecrementFactor; } - @Override public double persistenceThrottlingWsBackoff() { return persistenceThrottlingWsBackoff; } - @Override public int persistenceThrottlingWindowSize() { return persistenceThrottlingWindowSize; } - @Override public double persistenceThrottlingWsResizeRate() { return persistenceThrottlingWsResizeRate; } @Override public boolean useQrserverServiceName() { return useQrserverServiceName; } @Override public boolean avoidRenamingSummaryFeatures() { return avoidRenamingSummaryFeatures; } @Override public Architecture adminClusterArchitecture() { return adminClusterArchitecture; } diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 28f91d1e53f..24e9ea5ef7c 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -276,7 +276,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundIntFlag MAX_COMPACT_BUFFERS = defineIntFlag( "max-compact-buffers", 1, List.of("baldersheim", "geirst", "toregge"), "2021-12-15", "2023-01-01", @@ -284,38 +283,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundDoubleFlag PERSISTENCE_THROTTLING_WS_DECREMENT_FACTOR = defineDoubleFlag( - "persistence-throttling-ws-decrement-factor", 1.2, - List.of("vekterli"), "2022-01-27", "2022-12-01", - "Sets the dynamic throttle policy window size decrement factor for persistence " + - "async throttling. Only applies if DYNAMIC policy is used.", - "Takes effect on redeployment", - ZONE_ID, APPLICATION_ID); - - public static final UnboundDoubleFlag PERSISTENCE_THROTTLING_WS_BACKOFF = defineDoubleFlag( - "persistence-throttling-ws-backoff", 0.95, - List.of("vekterli"), "2022-01-27", "2022-12-01", - "Sets the dynamic throttle policy window size backoff for persistence " + - "async throttling. Only applies if DYNAMIC policy is used. Valid range [0, 1]", - "Takes effect on redeployment", - ZONE_ID, APPLICATION_ID); - - public static final UnboundIntFlag PERSISTENCE_THROTTLING_WINDOW_SIZE = defineIntFlag( - "persistence-throttling-window-size", -1, - List.of("vekterli"), "2022-02-23", "2022-11-01", - "If greater than zero, sets both min and max window size to the given number, effectively " + - "turning dynamic throttling into a static throttling policy. " + - "Only applies if DYNAMIC policy is used.", - "Takes effect on redeployment", - ZONE_ID, APPLICATION_ID); - - public static final UnboundDoubleFlag PERSISTENCE_THROTTLING_WS_RESIZE_RATE = defineDoubleFlag( - "persistence-throttling-ws-resize-rate", 3.0, - List.of("vekterli"), "2022-02-23", "2022-11-01", - "Sets the dynamic throttle policy resize rate. Only applies if DYNAMIC policy is used.", - "Takes effect on redeployment", - ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag USE_QRSERVER_SERVICE_NAME = defineFeatureFlag( "use-qrserver-service-name", false, List.of("arnej"), "2022-01-18", "2022-12-31", |