summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java4
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java14
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/test/MockService.java2
-rw-r--r--container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java20
-rw-r--r--container-di/src/main/java/com/yahoo/container/di/Container.java9
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java15
-rw-r--r--document/src/main/java/com/yahoo/document/datatypes/Raw.java13
-rw-r--r--model-inference/src/main/java/ai/vespa/models/evaluation/ModelsEvaluator.java16
-rw-r--r--model-inference/src/main/java/ai/vespa/models/evaluation/config/RankprofilesConfigImporter.java16
-rw-r--r--pom.xml1
11 files changed, 71 insertions, 41 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java b/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java
index 1e5c22f4023..e0b6392b64a 100644
--- a/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java
@@ -20,8 +20,8 @@ import java.util.concurrent.Executor;
* Handler of statistics http requests. Temporary hack as a step towards a more
* general network interface.
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Steinar Knutsen
+ * @author Einar M R Rosenvinge
*/
public class StatisticsRequestHandler extends ThreadedHttpRequestHandler {
diff --git a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
index e2c6da6fab8..55d7de90f33 100644
--- a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
+++ b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
@@ -86,11 +86,7 @@ public class HandlersConfigurerDi {
osgiWrapper = new OsgiWrapper(osgiFramework, vespaContainer.getBundleLoader());
container = new Container(subscriberFactory, configId, deconstructor, osgiWrapper);
- try {
- getNewComponentGraph(discInjector, false);
- } catch (InterruptedException e) {
- throw new RuntimeException("Interrupted while setting up handlers for the first time.");
- }
+ getNewComponentGraph(discInjector, false);
}
private static class OsgiWrapper extends OsgiImpl implements com.yahoo.container.di.Osgi {
@@ -139,10 +135,10 @@ public class HandlersConfigurerDi {
/**
* Wait for new config to arrive and produce the new graph
*/
- public void getNewComponentGraph(Injector discInjector, boolean restartOnRedeploy) throws InterruptedException {
- currentGraph = container.getNewComponentGraph(currentGraph, createFallbackInjector(vespaContainer, discInjector), restartOnRedeploy);
-
- assert (currentGraph.getInstance(RegistriesHack.class) != null); // TODO: Remove, seems quite pointless?
+ public void getNewComponentGraph(Injector discInjector, boolean restartOnRedeploy) {
+ currentGraph = container.getNewComponentGraph(currentGraph,
+ createFallbackInjector(vespaContainer, discInjector),
+ restartOnRedeploy);
}
@SuppressWarnings("deprecation")
diff --git a/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java b/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java
index 241ae269fc9..c50dee43eaf 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java
@@ -22,6 +22,7 @@ import java.util.concurrent.Executor;
* @author dybis
*/
public class AccessLogRequestHandler extends ThreadedHttpRequestHandler {
+
private final CircularArrayAccessLogKeeper circularArrayAccessLogKeeper;
private final JsonFactory jsonFactory = new JsonFactory();
@@ -53,4 +54,5 @@ public class AccessLogRequestHandler extends ThreadedHttpRequestHandler {
}
};
}
+
}
diff --git a/container-core/src/main/java/com/yahoo/container/handler/test/MockService.java b/container-core/src/main/java/com/yahoo/container/handler/test/MockService.java
index 99d28b9bcf1..7bd18c519eb 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/test/MockService.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/test/MockService.java
@@ -39,12 +39,10 @@ import java.util.logging.Logger;
* for descriptions of the format.
*
* @author lulf
- * @since 5.1.21
*/
@Beta
public class MockService extends LoggingRequestHandler {
- private final static Logger log = Logger.getLogger(MockService.class.getName());
private MockServiceHandler handler;
/**
diff --git a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
index fe315c0eba5..337997f8ac2 100644
--- a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
+++ b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java
@@ -47,13 +47,14 @@ public final class ConfigRetriever {
/**
* Loop forever until we get config
*/
- public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, long leastGeneration,
- boolean restartOnRedeploy) {
+ public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys,
+ long leastGeneration,
+ boolean restartOnRedeploy) {
while (true) {
- if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty()) {
- throw new IllegalArgumentException(
- "Component config keys [" + componentConfigKeys + "] overlaps with bootstrap config keys [" + bootstrapKeys + "]");
- }
+ if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty())
+ throw new IllegalArgumentException("Component config keys [" + componentConfigKeys +
+ "] overlaps with bootstrap config keys [" + bootstrapKeys + "]");
+
log.log(DEBUG, "getConfigs: " + componentConfigKeys);
Set<ConfigKey<? extends ConfigInstance>> allKeys = new HashSet<>(componentConfigKeys);
allKeys.addAll(bootstrapKeys);
@@ -75,8 +76,9 @@ public final class ConfigRetriever {
/**
* Try to get config just once
*/
- public Optional<ConfigSnapshot> getConfigsOnce(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, long leastGeneration,
- boolean restartOnRedeploy) {
+ Optional<ConfigSnapshot> getConfigsOnce(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys,
+ long leastGeneration,
+ boolean restartOnRedeploy) {
if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty()) {
throw new IllegalArgumentException(
"Component config keys [" + componentConfigKeys + "] overlaps with bootstrap config keys [" + bootstrapKeys + "]");
@@ -114,7 +116,7 @@ public final class ConfigRetriever {
} else {
// This should not be a normal case, and hence a warning to allow investigation.
log.warning("Did not get same generation for bootstrap (" + newestBootstrapGeneration + ") and components configs ("
- + newestComponentGeneration + ").");
+ + newestComponentGeneration + ").");
return Optional.empty();
}
}
diff --git a/container-di/src/main/java/com/yahoo/container/di/Container.java b/container-di/src/main/java/com/yahoo/container/di/Container.java
index 7c58120d858..fb427bcf8ae 100644
--- a/container-di/src/main/java/com/yahoo/container/di/Container.java
+++ b/container-di/src/main/java/com/yahoo/container/di/Container.java
@@ -73,7 +73,6 @@ public class Container {
}
public ComponentGraph getNewComponentGraph(ComponentGraph oldGraph, Injector fallbackInjector, boolean restartOnRedeploy) {
-
try {
ComponentGraph newGraph = getConfigAndCreateGraph(oldGraph, fallbackInjector, restartOnRedeploy);
newGraph.reuseNodes(oldGraph);
@@ -87,11 +86,11 @@ public class Container {
}
}
- public ComponentGraph getNewComponentGraph(ComponentGraph oldGraph) {
+ ComponentGraph getNewComponentGraph(ComponentGraph oldGraph) {
return getNewComponentGraph(oldGraph, Guice.createInjector(), false);
}
- public ComponentGraph getNewComponentGraph() {
+ ComponentGraph getNewComponentGraph() {
return getNewComponentGraph(new ComponentGraph(), Guice.createInjector(), false);
}
@@ -125,10 +124,8 @@ public class Container {
}
}
- public ComponentGraph getConfigAndCreateGraph(ComponentGraph graph, Injector fallbackInjector, boolean restartOnRedeploy) {
-
+ private ComponentGraph getConfigAndCreateGraph(ComponentGraph graph, Injector fallbackInjector, boolean restartOnRedeploy) {
ConfigSnapshot snapshot;
-
while (true) {
snapshot = configurer.getConfigs(graph.configKeys(), leastGeneration, restartOnRedeploy);
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
index 932d31c0036..8d54c04d084 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java
@@ -203,7 +203,7 @@ public final class ConfiguredApplication implements Application {
// Block until new config arrives, and it should be applied
configurer.getNewComponentGraph(builder.guiceModules().activate(), qrConfig.restartOnDeploy());
intitializeAndActivateContainer(builder);
- } catch (ConfigInterruptedException | InterruptedException e) {
+ } catch (ConfigInterruptedException e) {
break;
} catch (Exception | LinkageError e) { // LinkageError: OSGi problems
log.log(Level.SEVERE,
@@ -256,13 +256,12 @@ public final class ConfiguredApplication implements Application {
}
private void configureComponents(Injector discInjector) {
- configurer = new HandlersConfigurerDi(
- subscriberFactory,
- Container.get(),
- configId,
- new Deconstructor(true),
- discInjector,
- osgiFramework);
+ configurer = new HandlersConfigurerDi(subscriberFactory,
+ Container.get(),
+ configId,
+ new Deconstructor(true),
+ discInjector,
+ osgiFramework);
}
private void setupGuiceBindings(GuiceRepository modules) {
diff --git a/document/src/main/java/com/yahoo/document/datatypes/Raw.java b/document/src/main/java/com/yahoo/document/datatypes/Raw.java
index 2a5383705df..23ed0cee23e 100644
--- a/document/src/main/java/com/yahoo/document/datatypes/Raw.java
+++ b/document/src/main/java/com/yahoo/document/datatypes/Raw.java
@@ -17,15 +17,16 @@ import java.util.Arrays;
/**
* FieldValue which encapsulates a Raw value
*
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public final class Raw extends FieldValue {
+
private static class Factory extends PrimitiveDataType.Factory {
public FieldValue create() {
return new Raw();
}
}
- public static PrimitiveDataType.Factory getFactory() { return new Factory(); }
+
public static final int classId = registerClass(Ids.document + 16, Raw.class);
private ByteBuffer value;
@@ -42,6 +43,8 @@ public final class Raw extends FieldValue {
value.position(0);
}
+ public static PrimitiveDataType.Factory getFactory() { return new Factory(); }
+
public ByteBuffer getByteBuffer() {
return value;
}
@@ -136,11 +139,11 @@ public final class Raw extends FieldValue {
}
/* (non-Javadoc)
- * @see com.yahoo.document.datatypes.FieldValue#deserialize(com.yahoo.document.Field, com.yahoo.document.serialization.FieldReader)
- */
-
+ * @see com.yahoo.document.datatypes.FieldValue#deserialize(com.yahoo.document.Field, com.yahoo.document.serialization.FieldReader)
+ */
@Override
public void deserialize(Field field, FieldReader reader) {
reader.read(field, this);
}
+
}
diff --git a/model-inference/src/main/java/ai/vespa/models/evaluation/ModelsEvaluator.java b/model-inference/src/main/java/ai/vespa/models/evaluation/ModelsEvaluator.java
new file mode 100644
index 00000000000..673c7b5e354
--- /dev/null
+++ b/model-inference/src/main/java/ai/vespa/models/evaluation/ModelsEvaluator.java
@@ -0,0 +1,16 @@
+package ai.vespa.models.evaluation;
+
+import com.yahoo.vespa.config.search.RankProfilesConfig;
+
+/**
+ * Evaluates machine-learned models added to Vespa applications and available as config form.
+ *
+ * @author bratseth
+ */
+public class ModelsEvaluator {
+
+ public ModelsEvaluator(RankProfilesConfig config) {
+ new RankProfilesConfigImporter().importFrom(config);
+ }
+
+}
diff --git a/model-inference/src/main/java/ai/vespa/models/evaluation/config/RankprofilesConfigImporter.java b/model-inference/src/main/java/ai/vespa/models/evaluation/config/RankprofilesConfigImporter.java
new file mode 100644
index 00000000000..70964529f53
--- /dev/null
+++ b/model-inference/src/main/java/ai/vespa/models/evaluation/config/RankprofilesConfigImporter.java
@@ -0,0 +1,16 @@
+package ai.vespa.models.evaluation.config;
+
+import com.yahoo.vespa.config.search.RankProfilesConfig;
+
+/**
+ * Converts RankprofilesConfig instances to RankingExpressions for evaluation
+ */
+public class RankprofilesConfigImporter {
+
+ public void importFrom(RankProfilesConfig config) {
+ for (RankProfilesConfig.Rankprofile profile : config.rankprofile()) {
+
+ }
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 1f766b2878d..9d7b3823347 100644
--- a/pom.xml
+++ b/pom.xml
@@ -93,6 +93,7 @@
<module>messagebus-disc</module>
<module>messagebus</module>
<module>metrics</module>
+ <module>model-inference</module>
<module>node-repository</module>
<module>node-admin</module>
<module>node-maintainer</module>