diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-09-06 16:38:28 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-09-06 16:38:28 +0200 |
commit | ef211a55b4a343ad8bcd8ae34a202f3c61828a7a (patch) | |
tree | 4f62a9363a9b48bd8875e6868fc9f974d37b9b5b /config-model/src | |
parent | c1fdecf3cb26f1a3aef2caf290916a4f533c6c58 (diff) |
Send global constants
Diffstat (limited to 'config-model/src')
5 files changed, 44 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java index 164cb7f808e..5ac1418c0c7 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java @@ -1,6 +1,11 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition; +import com.yahoo.config.FileReference; +import com.yahoo.vespa.model.AbstractService; +import com.yahoo.vespa.model.utils.FileSender; + +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -33,4 +38,14 @@ public class RankingConstants { return Collections.unmodifiableMap(constants); } + /** Initiate sending of these constants to some services over file distribution */ + public void sendTo(Collection<? extends AbstractService> services) { + for (RankingConstant constant : constants.values()) { + FileReference reference = (constant.getPathType() == RankingConstant.PathType.FILE) + ? FileSender.sendFileToServices(constant.getFileName(), services) + : FileSender.sendUriToServices(constant.getUri(), services); + constant.setFileReference(reference.value()); + } + } + } 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 e58b3da4f72..fcbfb47c597 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 @@ -10,7 +10,9 @@ import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; +import com.yahoo.vespa.model.AbstractService; +import java.util.Collection; import java.util.Map; import java.util.logging.Logger; @@ -79,6 +81,10 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ return rankProfiles.get(name); } + public void sendConstantsTo(Collection<? extends AbstractService> services) { + rankingConstants.sendTo(services); + } + @Override public String getDerivedName() { return "rank-profiles"; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 0b434fd0c49..fbe86d26b02 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -87,7 +87,6 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -361,6 +360,7 @@ public final class ContainerCluster public void prepare() { addAndSendApplicationBundles(); + rankProfileList.sendConstantsTo(containers); sendUserConfiguredFiles(); setApplicationMetaData(); for (RestApi restApi : restApiGroup.getComponents()) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java index 19d014e0a1d..ceb48732116 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java @@ -15,6 +15,7 @@ import java.util.*; /** * Config producer for the FederationSearcher. + * * @author Tony Vaagenes */ public class FederationSearcher extends Searcher<FederationSearcherModel> implements FederationConfig.Producer { diff --git a/config-model/src/test/java/com/yahoo/config/model/ModelEvaluationTest.java b/config-model/src/test/java/com/yahoo/config/model/ModelEvaluationTest.java index 91d7fd436f3..a16c32d47ab 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ModelEvaluationTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/ModelEvaluationTest.java @@ -70,31 +70,41 @@ public class ModelEvaluationTest { assertEquals(4, config.rankprofile().size()); Set<String> modelNames = config.rankprofile().stream().map(v -> v.name()).collect(Collectors.toSet()); assertTrue(modelNames.contains("xgboost_2_2")); + assertTrue(modelNames.contains("mnist_saved")); assertTrue(modelNames.contains("mnist_softmax")); assertTrue(modelNames.contains("mnist_softmax_saved")); ModelsEvaluator evaluator = new ModelsEvaluator(config, constantsConfig); assertEquals(4, evaluator.models().size()); + Model xgboost = evaluator.models().get("xgboost_2_2"); assertNotNull(xgboost); assertNotNull(xgboost.evaluatorOf()); assertNotNull(xgboost.evaluatorOf("xgboost_2_2")); - Model onnx = evaluator.models().get("mnist_softmax"); - assertNotNull(onnx); - assertNotNull(onnx.evaluatorOf()); - assertNotNull(onnx.evaluatorOf("default")); - assertNotNull(onnx.evaluatorOf("default", "add")); - assertNotNull(onnx.evaluatorOf("default.add")); + Model tensorflow_mnist = evaluator.models().get("mnist_saved"); + assertNotNull(tensorflow_mnist); + assertNotNull(tensorflow_mnist.evaluatorOf("serving_default")); + assertNotNull(tensorflow_mnist.evaluatorOf("serving_default", "y")); + assertNotNull(tensorflow_mnist.evaluatorOf("serving_default.y")); + assertNotNull(evaluator.evaluatorOf("mnist_saved", "serving_default.y")); + assertNotNull(evaluator.evaluatorOf("mnist_saved", "serving_default", "y")); + + Model onnx_mnist_softmax = evaluator.models().get("mnist_softmax"); + assertNotNull(onnx_mnist_softmax); + assertNotNull(onnx_mnist_softmax.evaluatorOf()); + assertNotNull(onnx_mnist_softmax.evaluatorOf("default")); + assertNotNull(onnx_mnist_softmax.evaluatorOf("default", "add")); + assertNotNull(onnx_mnist_softmax.evaluatorOf("default.add")); assertNotNull(evaluator.evaluatorOf("mnist_softmax", "default.add")); assertNotNull(evaluator.evaluatorOf("mnist_softmax", "default", "add")); - Model tensorflow = evaluator.models().get("mnist_softmax_saved"); - assertNotNull(tensorflow); - assertNotNull(tensorflow.evaluatorOf()); - assertNotNull(tensorflow.evaluatorOf("serving_default")); - assertNotNull(tensorflow.evaluatorOf("serving_default", "y")); + Model tensorflow_mnist_softmax = evaluator.models().get("mnist_softmax_saved"); + assertNotNull(tensorflow_mnist_softmax); + assertNotNull(tensorflow_mnist_softmax.evaluatorOf()); + assertNotNull(tensorflow_mnist_softmax.evaluatorOf("serving_default")); + assertNotNull(tensorflow_mnist_softmax.evaluatorOf("serving_default", "y")); } } |