diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-12 17:26:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-12 17:26:59 +0100 |
commit | 8d5258ccbb0c2cc2647d2e0730469993db501b8a (patch) | |
tree | ce9777773d61c4036517075f40f993ecc9046cad | |
parent | 034e62d9730caaa1226763619977121edf8bbf7b (diff) | |
parent | ef469cc08d7206dfb72b5cab842053264633a1cc (diff) |
Merge pull request #20781 from vespa-engine/balder/gc-featureflag-control-of-disk-bloat-factor
GC featureflag control of disk bloat factor
6 files changed, 5 insertions, 29 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 f201d183672..35b63ad36dd 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 @@ -90,7 +90,7 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"vekterli", "geirst"}) default boolean ignoreMergeQueueLimit() { throw new UnsupportedOperationException("TODO specify default value"); } @ModelFeatureFlag(owners = {"baldersheim"}) default boolean containerDumpHeapOnShutdownTimeout() { throw new UnsupportedOperationException("TODO specify default value"); } @ModelFeatureFlag(owners = {"baldersheim"}) default double containerShutdownTimeout() { throw new UnsupportedOperationException("TODO specify default value"); } - @ModelFeatureFlag(owners = {"baldersheim"}) default double diskBloatFactor() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}, removeAfter = "7.527") default double diskBloatFactor() { return 0.25; } @ModelFeatureFlag(owners = {"baldersheim"}, removeAfter = "7.527") default int docstoreCompressionLevel() { return 3; } @ModelFeatureFlag(owners = {"geirst"}) default boolean enableFeedBlockInDistributor() { return true; } @ModelFeatureFlag(owners = {"bjorncs", "tokle"}) default List<String> allowedAthenzProxyIdentities() { return List.of(); } 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 730785b35fc..039eecf003a 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 @@ -68,7 +68,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private double containerShutdownTimeout = 50.0; private int distributorMergeBusyWait = 10; private int maxUnCommittedMemory = 123456; - private double diskBloatFactor = 0.25; private boolean distributorEnhancedMaintenanceScheduling = false; private boolean asyncApplyBucketDiff = false; private boolean unorderedMergeChaining = false; @@ -123,7 +122,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public double containerShutdownTimeout() { return containerShutdownTimeout; } @Override public boolean containerDumpHeapOnShutdownTimeout() { return containerDumpHeapOnShutdownTimeout; } @Override public int distributorMergeBusyWait() { return distributorMergeBusyWait; } - @Override public double diskBloatFactor() { return diskBloatFactor; } @Override public boolean distributorEnhancedMaintenanceScheduling() { return distributorEnhancedMaintenanceScheduling; } @Override public int maxUnCommittedMemory() { return maxUnCommittedMemory; } @Override public boolean asyncApplyBucketDiff() { return asyncApplyBucketDiff; } @@ -138,11 +136,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } - public TestProperties diskBloatFactor(double diskBloatFactor) { - this.diskBloatFactor = diskBloatFactor; - return this; - } - public TestProperties containerDumpHeapOnShutdownTimeout(boolean value) { containerDumpHeapOnShutdownTimeout = value; return this; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java index f7ba2fb2fe3..cadba086e36 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java @@ -44,6 +44,7 @@ import static java.util.stream.Collectors.toList; public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> implements ProtonConfig.Producer, DispatchConfig.Producer { private static final int DEFAULT_DOC_STORE_COMPRESSION_LEVEL = 3; + private static final double DEFAULT_DISK_BLOAT = 0.25; private final boolean flushOnShutdown; private final Boolean syncTransactionLog; @@ -70,7 +71,6 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> private final int feedMasterTaskLimit; private final ProtonConfig.Feeding.Shared_field_writer_executor.Enum sharedFieldWriterExecutor; private final double defaultFeedConcurrency; - private final double defaultDiskBloatFactor; private final boolean forwardIssuesToQrs; private final int defaultMaxCompactBuffers; @@ -224,7 +224,6 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> this.feedMasterTaskLimit = featureFlags.feedMasterTaskLimit(); this.sharedFieldWriterExecutor = convertSharedFieldWriterExecutor(featureFlags.sharedFieldWriterExecutor()); this.defaultFeedConcurrency = featureFlags.feedConcurrency(); - this.defaultDiskBloatFactor = featureFlags.diskBloatFactor(); this.forwardIssuesToQrs = featureFlags.forwardIssuesAsErrors(); this.defaultMaxCompactBuffers = featureFlags.maxCompactBuffers(); } @@ -423,8 +422,8 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> } else { builder.feeding.concurrency(defaultFeedConcurrency); } - builder.flush.memory.diskbloatfactor(defaultDiskBloatFactor); - builder.flush.memory.each.diskbloatfactor(defaultDiskBloatFactor); + builder.flush.memory.diskbloatfactor(DEFAULT_DISK_BLOAT); + builder.flush.memory.each.diskbloatfactor(DEFAULT_DISK_BLOAT); builder.summary.log.chunk.compression.level(DEFAULT_DOC_STORE_COMPRESSION_LEVEL); builder.summary.log.compact.compression.level(DEFAULT_DOC_STORE_COMPRESSION_LEVEL); builder.forward_issues(forwardIssuesToQrs); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java index 97e097fbe24..68e722f45d3 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java @@ -268,15 +268,9 @@ public class ContentSchemaClusterTest { } @Test - public void verifyControlOfDiskBloatFactor() throws Exception { + public void verifyDefaultDiskBloatFactor() throws Exception { var defaultCfg = getProtonConfig(createCluster(new ContentClusterBuilder().getXml())); assertEquals(0.25, defaultCfg.flush().memory().diskbloatfactor(), EPSILON); assertEquals(0.25, defaultCfg.flush().memory().each().diskbloatfactor(), EPSILON); - - var controlledCfg = getProtonConfig(createCluster(new ContentClusterBuilder().getXml(), - new DeployState.Builder().properties(new TestProperties().diskBloatFactor(0.31)) - )); - assertEquals(0.31, controlledCfg.flush().memory().diskbloatfactor(), EPSILON); - assertEquals(0.31, controlledCfg.flush().memory().each().diskbloatfactor(), EPSILON); } } 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 0a87db59a54..5d944df2f30 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 @@ -191,7 +191,6 @@ public class ModelContextImpl implements ModelContext { private final boolean containerDumpHeapOnShutdownTimeout; private final double containerShutdownTimeout; private final int distributorMergeBusyWait; - private final double diskBloatFactor; private final boolean distributorEnhancedMaintenanceScheduling; private final int maxUnCommittedMemory; private final boolean forwardIssuesAsErrors; @@ -234,7 +233,6 @@ public class ModelContextImpl implements ModelContext { this.containerDumpHeapOnShutdownTimeout = flagValue(source, appId, Flags.CONTAINER_DUMP_HEAP_ON_SHUTDOWN_TIMEOUT); this.containerShutdownTimeout = flagValue(source, appId,Flags.CONTAINER_SHUTDOWN_TIMEOUT); this.distributorMergeBusyWait = flagValue(source, appId, Flags.DISTRIBUTOR_MERGE_BUSY_WAIT); - this.diskBloatFactor = flagValue(source, appId, Flags.DISK_BLOAT_FACTOR); this.distributorEnhancedMaintenanceScheduling = flagValue(source, appId, Flags.DISTRIBUTOR_ENHANCED_MAINTENANCE_SCHEDULING); this.maxUnCommittedMemory = flagValue(source, appId, Flags.MAX_UNCOMMITTED_MEMORY);; this.forwardIssuesAsErrors = flagValue(source, appId, PermanentFlags.FORWARD_ISSUES_AS_ERRORS); @@ -279,7 +277,6 @@ public class ModelContextImpl implements ModelContext { @Override public double containerShutdownTimeout() { return containerShutdownTimeout; } @Override public boolean containerDumpHeapOnShutdownTimeout() { return containerDumpHeapOnShutdownTimeout; } @Override public int distributorMergeBusyWait() { return distributorMergeBusyWait; } - @Override public double diskBloatFactor() { return diskBloatFactor; } @Override public boolean distributorEnhancedMaintenanceScheduling() { return distributorEnhancedMaintenanceScheduling; } @Override public int maxUnCommittedMemory() { return maxUnCommittedMemory; } @Override public boolean forwardIssuesAsErrors() { return forwardIssuesAsErrors; } 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 3282f7f0cf3..065636604d9 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -152,13 +152,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundDoubleFlag DISK_BLOAT_FACTOR = defineDoubleFlag( - "disk-bloat-factor", 0.25, - List.of("baldersheim"), "2021-10-08", "2022-02-01", - "Amount of bloat allowed before compacting file", - "Takes effect at redeployment", - ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag ENABLE_FEED_BLOCK_IN_DISTRIBUTOR = defineFeatureFlag( "enable-feed-block-in-distributor", true, List.of("geirst"), "2021-01-27", "2022-01-31", |