diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-09-08 11:05:30 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-09-08 11:05:30 +0200 |
commit | f86828a933b4d356d0f3eefc0cc7a145a4e7297b (patch) | |
tree | 68a70ac8f8015f3835dcdc0bb813e7e5819fbf2e | |
parent | 561703e6a24afae1d5a08c76832eceaecb5acb12 (diff) |
GC dry-run-onnx-on-setup flag
6 files changed, 11 insertions, 33 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 a1de4ff26d6..a6b56640c97 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 @@ -86,7 +86,7 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"baldersheim"}) default boolean distributeExternalRankExpressions() { return false; } @ModelFeatureFlag(owners = {"baldersheim"}) default int maxConcurrentMergesPerNode() { throw new UnsupportedOperationException("TODO specify default value"); } @ModelFeatureFlag(owners = {"baldersheim"}) default int maxMergeQueueSize() { throw new UnsupportedOperationException("TODO specify default value"); } - @ModelFeatureFlag(owners = {"baldersheim"}) default boolean dryRunOnnxOnSetup() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default boolean dryRunOnnxOnSetup() { return true; } @ModelFeatureFlag(owners = {"geirst"}) default boolean enableFeedBlockInDistributor() { return true; } @ModelFeatureFlag(owners = {"bjorncs", "tokle"}) default List<String> allowedAthenzProxyIdentities() { return List.of(); } @ModelFeatureFlag(owners = {"vekterli"}) default int maxActivationInhibitedOutOfSyncGroups() { return 0; } 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 34d5533364f..b42686406b5 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 @@ -2,7 +2,6 @@ package com.yahoo.config.model.deploy; import com.google.common.collect.ImmutableList; -import com.yahoo.config.model.api.ApplicationRoles; import com.yahoo.config.model.api.ConfigServerSpec; import com.yahoo.config.model.api.ContainerEndpoint; import com.yahoo.config.model.api.EndpointCertificateSecrets; @@ -60,7 +59,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private int maxMergeQueueSize = 1024; private int largeRankExpressionLimit = 8192; private boolean allowDisableMtls = true; - private boolean dryRunOnnxOnSetup = false; private List<X509Certificate> operatorCertificates = Collections.emptyList(); private double resourceLimitDisk = 0.8; private double resourceLimitMemory = 0.8; @@ -105,17 +103,12 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public int largeRankExpressionLimit() { return largeRankExpressionLimit; } @Override public int maxConcurrentMergesPerNode() { return maxConcurrentMergesPerNode; } @Override public int maxMergeQueueSize() { return maxMergeQueueSize; } - @Override public boolean dryRunOnnxOnSetup() { return dryRunOnnxOnSetup; } @Override public double resourceLimitDisk() { return resourceLimitDisk; } @Override public double resourceLimitMemory() { return resourceLimitMemory; } @Override public double minNodeRatioPerGroup() { return minNodeRatioPerGroup; } @Override public int metricsproxyNumThreads() { return 1; } @Override public boolean enforceRankProfileInheritance() { return true; } - public TestProperties setDryRunOnnxOnSetup(boolean value) { - dryRunOnnxOnSetup = value; - return this; - } public TestProperties useExternalRankExpression(boolean value) { useExternalRankExpression = value; return this; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java index 6528c9195d4..122c39f440f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java @@ -40,7 +40,6 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ private final RankingConstants rankingConstants; private final LargeRankExpressions largeRankExpressions; private final OnnxModels onnxModels; - private final boolean dryRunOnnxOnSetup; public static RankProfileList empty = new RankProfileList(); @@ -48,7 +47,6 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ rankingConstants = new RankingConstants(null); largeRankExpressions = new LargeRankExpressions(null); onnxModels = new OnnxModels(null); - dryRunOnnxOnSetup = true; } /** @@ -71,7 +69,6 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ this.rankingConstants = rankingConstants; this.largeRankExpressions = largeRankExpressions; this.onnxModels = onnxModels; // as ONNX models come from parsing rank expressions - dryRunOnnxOnSetup = deployProperties.featureFlags().dryRunOnnxOnSetup(); deriveRankProfiles(rankProfileRegistry, queryProfiles, importedModels, search, attributeFields, deployProperties, executor); } @@ -154,7 +151,7 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ log.warning("Illegal file reference " + model); // Let tests pass ... we should find a better way else { OnnxModelsConfig.Model.Builder modelBuilder = new OnnxModelsConfig.Model.Builder(); - modelBuilder.dry_run_on_setup(dryRunOnnxOnSetup); + modelBuilder.dry_run_on_setup(true); modelBuilder.name(model.getName()); modelBuilder.fileref(model.getFileReference()); model.getInputMap().forEach((name, source) -> modelBuilder.input(new OnnxModelsConfig.Model.Input.Builder().name(name).source(source))); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java index ab148130a7d..f1f6860c197 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithOnnxModelTestCase.java @@ -2,10 +2,8 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.io.IOUtils; import com.yahoo.path.Path; import com.yahoo.vespa.config.search.RankProfilesConfig; @@ -17,6 +15,7 @@ import org.junit.After; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class RankingExpressionWithOnnxModelTestCase { @@ -29,9 +28,9 @@ public class RankingExpressionWithOnnxModelTestCase { @Test public void testOnnxModelFeature() throws Exception { - VespaModel model = loadModel(applicationDir, false); + VespaModel model = loadModel(applicationDir); assertTransformedFeature(model); - assertGeneratedConfig(model, false); + assertGeneratedConfig(model); Path storedApplicationDir = applicationDir.append("copy"); try { @@ -41,30 +40,29 @@ public class RankingExpressionWithOnnxModelTestCase { IOUtils.copyDirectory(applicationDir.append(ApplicationPackage.MODELS_GENERATED_DIR).toFile(), storedApplicationDir.append(ApplicationPackage.MODELS_GENERATED_DIR).toFile()); - VespaModel storedModel = loadModel(storedApplicationDir, true); + VespaModel storedModel = loadModel(storedApplicationDir); assertTransformedFeature(storedModel); - assertGeneratedConfig(storedModel, true); + assertGeneratedConfig(storedModel); } finally { IOUtils.recursiveDeleteDir(storedApplicationDir.toFile()); } } - private VespaModel loadModel(Path path, boolean dryRunOnnx) throws Exception { + private VespaModel loadModel(Path path) throws Exception { FilesApplicationPackage applicationPackage = FilesApplicationPackage.fromFile(path.toFile()); - ModelContext.Properties properties = new TestProperties().setDryRunOnnxOnSetup(dryRunOnnx); - DeployState state = new DeployState.Builder().applicationPackage(applicationPackage).properties(properties).build(); + DeployState state = new DeployState.Builder().applicationPackage(applicationPackage).build(); return new VespaModel(state); } - private void assertGeneratedConfig(VespaModel vespaModel, boolean expectDryRunOnnx) { + private void assertGeneratedConfig(VespaModel vespaModel) { DocumentDatabase db = ((IndexedSearchCluster)vespaModel.getSearchClusters().get(0)).getDocumentDbs().get(0); OnnxModelsConfig.Builder builder = new OnnxModelsConfig.Builder(); ((OnnxModelsConfig.Producer) db).getConfig(builder); OnnxModelsConfig config = new OnnxModelsConfig(builder); assertEquals(6, config.model().size()); for (OnnxModelsConfig.Model model : config.model()) { - assertEquals(expectDryRunOnnx, model.dry_run_on_setup()); + assertTrue(model.dry_run_on_setup()); } OnnxModelsConfig.Model model = config.model(0); 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 9a736fc6d01..414782a43f4 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 @@ -179,7 +179,6 @@ public class ModelContextImpl implements ModelContext { private final int maxMergeQueueSize; private final int largeRankExpressionLimit; private final boolean throwIfResourceLimitsSpecified; - private final boolean dryRunOnnxOnSetup; private final double resourceLimitDisk; private final double resourceLimitMemory; private final double minNodeRatioPerGroup; @@ -210,7 +209,6 @@ public class ModelContextImpl implements ModelContext { this.maxConcurrentMergesPerContentNode = flagValue(source, appId, Flags.MAX_CONCURRENT_MERGES_PER_NODE); this.maxMergeQueueSize = flagValue(source, appId, Flags.MAX_MERGE_QUEUE_SIZE); this.throwIfResourceLimitsSpecified = flagValue(source, appId, Flags.THROW_EXCEPTION_IF_RESOURCE_LIMITS_SPECIFIED); - this.dryRunOnnxOnSetup = flagValue(source, appId, Flags.DRY_RUN_ONNX_ON_SETUP); this.resourceLimitDisk = flagValue(source, appId, PermanentFlags.RESOURCE_LIMIT_DISK); this.resourceLimitMemory = flagValue(source, appId, PermanentFlags.RESOURCE_LIMIT_MEMORY); this.minNodeRatioPerGroup = flagValue(source, appId, Flags.MIN_NODE_RATIO_PER_GROUP); @@ -243,7 +241,6 @@ public class ModelContextImpl implements ModelContext { @Override public int maxConcurrentMergesPerNode() { return maxConcurrentMergesPerContentNode; } @Override public int maxMergeQueueSize() { return maxMergeQueueSize; } @Override public boolean throwIfResourceLimitsSpecified() { return throwIfResourceLimitsSpecified; } - @Override public boolean dryRunOnnxOnSetup() { return dryRunOnnxOnSetup; } @Override public double resourceLimitDisk() { return resourceLimitDisk; } @Override public double resourceLimitMemory() { return resourceLimitMemory; } @Override public double minNodeRatioPerGroup() { return minNodeRatioPerGroup; } 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 df17398383a..3f444079083 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -237,13 +237,6 @@ public class Flags { "Takes effect on next deployment through controller", APPLICATION_ID); - public static final UnboundBooleanFlag DRY_RUN_ONNX_ON_SETUP = defineFeatureFlag( - "dry-run-onnx-on-setup", true, - List.of("baldersheim"), "2021-06-23", "2021-09-01", - "Whether to dry run onnx models on setup for better error checking", - "Takes effect on next internal redeployment", - APPLICATION_ID); - public static final UnboundListFlag<String> DEFER_APPLICATION_ENCRYPTION = defineListFlag( "defer-application-encryption", List.of(), String.class, List.of("mpolden", "hakonhall"), "2021-06-23", "2021-10-01", |