diff options
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()) { + + } + } + +} @@ -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> |