summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-09-06 16:38:28 +0200
committerJon Bratseth <bratseth@oath.com>2018-09-06 16:38:28 +0200
commitef211a55b4a343ad8bcd8ae34a202f3c61828a7a (patch)
tree4f62a9363a9b48bd8875e6868fc9f974d37b9b5b /config-model
parentc1fdecf3cb26f1a3aef2caf290916a4f533c6c58 (diff)
Send global constants
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java15
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java6
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/FederationSearcher.java1
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/ModelEvaluationTest.java32
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"));
}
}