summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-30 09:05:30 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-30 09:05:30 +0200
commitd8d16951fb67b7f8a9dafe8c75ac927e83cf697a (patch)
tree9d66c602d364dc5d174407a0bc2e4d4669266ab8
parent2f2613db7ed3d7e2f3f9ee01fc46683bd3c0295a (diff)
No configuration of phrase splitting needed.
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java2
-rw-r--r--config-model/src/main/java/com/yahoo/schema/RankProfile.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java22
-rw-r--r--config-model/src/test/java/com/yahoo/schema/RankPropertiesTestCase.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java3
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java7
6 files changed, 18 insertions, 34 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 b2eb4c9c0d7..d865aaa8f9b 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
@@ -77,7 +77,7 @@ public interface ModelContext {
@ModelFeatureFlag(owners = {"baldersheim"}, comment = "Select sequencer type use while feeding") default String feedSequencerType() { return "THROUGHPUT"; }
@ModelFeatureFlag(owners = {"baldersheim"}) default String responseSequencerType() { throw new UnsupportedOperationException("TODO specify default value"); }
@ModelFeatureFlag(owners = {"baldersheim"}) default String queryDispatchPolicy() { return "adaptive"; }
- @ModelFeatureFlag(owners = {"baldersheim"}) default String phraseOptimization() { return ""; }
+ @ModelFeatureFlag(owners = {"baldersheim"}, removeAfter="8.61") default String phraseOptimization() { return "split"; }
@ModelFeatureFlag(owners = {"baldersheim"}) default int defaultNumResponseThreads() { return 2; }
@ModelFeatureFlag(owners = {"baldersheim"}, removeAfter="7.last") default boolean skipCommunicationManagerThread() { return true; }
@ModelFeatureFlag(owners = {"baldersheim"}, removeAfter="7.last") default boolean skipMbusRequestThread() { return true; }
diff --git a/config-model/src/main/java/com/yahoo/schema/RankProfile.java b/config-model/src/main/java/com/yahoo/schema/RankProfile.java
index dc7605c4897..31c68d2f2c8 100644
--- a/config-model/src/main/java/com/yahoo/schema/RankProfile.java
+++ b/config-model/src/main/java/com/yahoo/schema/RankProfile.java
@@ -144,7 +144,7 @@ public class RankProfile implements Cloneable {
public RankProfile(String name, Schema schema, RankProfileRegistry rankProfileRegistry) {
this(name, Objects.requireNonNull(schema, "schema cannot be null"),
schema.applicationPackage(), schema.getDeployLogger(),
- schema.getDeployProperties(), rankProfileRegistry);
+ rankProfileRegistry);
}
/**
@@ -153,17 +153,12 @@ public class RankProfile implements Cloneable {
* @param name the name of the new profile
*/
public RankProfile(String name, Schema schema, ApplicationPackage applicationPackage, DeployLogger deployLogger,
- ModelContext.Properties deployProperties, RankProfileRegistry rankProfileRegistry) {
+ RankProfileRegistry rankProfileRegistry) {
this.name = Objects.requireNonNull(name, "name cannot be null");
this.schema = schema;
this.rankProfileRegistry = rankProfileRegistry;
this.applicationPackage = applicationPackage;
this.deployLogger = deployLogger;
- if (deployProperties.featureFlags().phraseOptimization().contains("split")) {
- addRankProperty(new RankProperty("vespa.matching.split_unpacking_iterators", "true"));
- } else if (deployProperties.featureFlags().phraseOptimization().contains("off")) {
- addRankProperty(new RankProperty("vespa.matching.split_unpacking_iterators", "false"));
- }
}
public String name() { return name; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
index c9b462ce30b..86402981898 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
@@ -53,6 +53,7 @@ import com.yahoo.vespa.model.ml.ConvertedModel;
import com.yahoo.vespa.model.ml.ModelName;
import com.yahoo.vespa.model.ml.OnnxModelInfo;
import com.yahoo.vespa.model.routing.Routing;
+import com.yahoo.vespa.model.search.DocumentDatabase;
import com.yahoo.vespa.model.search.SearchCluster;
import com.yahoo.vespa.model.utils.internal.ReflectionUtil;
import org.xml.sax.SAXException;
@@ -190,21 +191,21 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
@Override
public Map<String, Set<String>> documentTypesByCluster() {
return getContentClusters().entrySet().stream()
- .collect(toMap(cluster -> cluster.getKey(),
+ .collect(toMap(Map.Entry::getKey,
cluster -> cluster.getValue().getDocumentDefinitions().keySet()));
}
@Override
public Map<String, Set<String>> indexedDocumentTypesByCluster() {
return getContentClusters().entrySet().stream()
- .collect(toUnmodifiableMap(cluster -> cluster.getKey(),
+ .collect(toUnmodifiableMap(Map.Entry::getKey,
cluster -> documentTypesWithIndex(cluster.getValue())));
}
private static Set<String> documentTypesWithIndex(ContentCluster content) {
Set<String> typesWithIndexMode = content.getSearch().getDocumentTypesWithIndexedCluster().stream()
.map(type -> type.getFullName().getName())
- .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
+ .collect(Collectors.toCollection(LinkedHashSet::new));
Set<String> typesWithIndexedFields = content.getSearch().getIndexed() == null
? Set.of()
@@ -213,11 +214,11 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
.getSchema()
.allConcreteFields()
.stream().anyMatch(SDField::doesIndexing))
- .map(database -> database.getSchemaName())
- .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
+ .map(DocumentDatabase::getSchemaName)
+ .collect(Collectors.toCollection(LinkedHashSet::new));
return typesWithIndexMode.stream().filter(typesWithIndexedFields::contains)
- .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
+ .collect(Collectors.toCollection(LinkedHashSet::new));
}
private void propagateRestartOnDeploy() {
@@ -258,13 +259,12 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
DeployLogger deployLogger = deployState.getDeployLogger();
RankProfileRegistry rankProfileRegistry = deployState.rankProfileRegistry();
QueryProfiles queryProfiles = deployState.getQueryProfiles();
- ModelContext.Properties deployProperties = deployState.getProperties();
List <Future<ConvertedModel>> futureModels = new ArrayList<>();
if ( ! importedModels.isEmpty()) { // models/ directory is available
for (ImportedMlModel model : importedModels) {
// Due to automatic naming not guaranteeing unique names, there must be a 1-1 between OnnxModels and global RankProfiles.
RankProfile profile = new RankProfile(model.name(), null, applicationPackage,
- deployLogger, deployProperties, rankProfileRegistry);
+ deployLogger, rankProfileRegistry);
addOnnxModelInfoFromSource(model, profile);
rankProfileRegistry.add(profile);
futureModels.add(deployState.getExecutor().submit(() -> {
@@ -282,7 +282,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
if (modelName.contains(".")) continue; // Name space: Not a global profile
// Due to automatic naming not guaranteeing unique names, there must be a 1-1 between OnnxModels and global RankProfiles.
RankProfile profile = new RankProfile(modelName, null, applicationPackage,
- deployLogger, deployProperties, rankProfileRegistry);
+ deployLogger, rankProfileRegistry);
addOnnxModelInfoFromStore(modelName, profile);
rankProfileRegistry.add(profile);
futureModels.add(deployState.getExecutor().submit(() -> {
@@ -430,7 +430,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
*
* @param configId a config id
*/
- protected void checkId(String configId) {
+ private void checkId(String configId) {
if ( ! id2producer.containsKey(configId)) {
log.log(Level.FINE, () -> "Invalid config id: " + configId);
}
@@ -657,7 +657,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Mode
.map(HostResource::spec)
.filter(spec -> spec.membership().isPresent())
.map(spec -> spec.membership().get().cluster().id())
- .collect(Collectors.toCollection(() -> new LinkedHashSet<>()));
+ .collect(Collectors.toCollection(LinkedHashSet::new));
}
@Override
diff --git a/config-model/src/test/java/com/yahoo/schema/RankPropertiesTestCase.java b/config-model/src/test/java/com/yahoo/schema/RankPropertiesTestCase.java
index a19918d83d2..26e67eaa5ec 100644
--- a/config-model/src/test/java/com/yahoo/schema/RankPropertiesTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/RankPropertiesTestCase.java
@@ -14,6 +14,7 @@ import java.util.List;
import static com.yahoo.config.model.test.TestUtil.joinLines;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author bratseth
@@ -106,13 +107,11 @@ public class RankPropertiesTestCase extends AbstractSchemaTestCase {
builder.build(true);
Schema schema = builder.getSchema();
List<RankProfile.RankProperty> props = rankProfileRegistry.get(schema, "a").getRankProperties();
- assertEquals(1, props.size());
- assertEquals(new RankProfile.RankProperty("vespa.matching.split_unpacking_iterators","true"), props.get(0));
+ assertTrue(props.isEmpty());
props = rankProfileRegistry.get(schema, "b").getRankProperties();
- assertEquals(2, props.size());
- assertEquals(new RankProfile.RankProperty("vespa.matching.split_unpacking_iterators","true"), props.get(0));
- assertEquals(new RankProfile.RankProperty("query(a)","2000"), props.get(1));
+ assertEquals(1, props.size());
+ assertEquals(new RankProfile.RankProperty("query(a)","2000"), props.get(0));
}
@Test
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 045bf38010a..b6557f1b8f6 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
@@ -167,7 +167,6 @@ public class ModelContextImpl implements ModelContext {
public static class FeatureFlags implements ModelContext.FeatureFlags {
private final String queryDispatchPolicy;
- private final String phraseOptimization;
private final double defaultTermwiseLimit;
private final boolean useThreePhaseUpdates;
private final String feedSequencer;
@@ -276,12 +275,10 @@ public class ModelContextImpl implements ModelContext {
this.rpc_num_targets = flagValue(source, appId, version, Flags.RPC_NUM_TARGETS);
this.rpc_events_before_wakeup = flagValue(source, appId, version, Flags.RPC_EVENTS_BEFORE_WAKEUP);
this.queryDispatchPolicy = flagValue(source, appId, version, Flags.QUERY_DISPATCH_POLICY);
- this.phraseOptimization = flagValue(source, appId, version, Flags.PHRASE_OPTIMIZATION);
this.useRestrictedDataPlaneBindings = flagValue(source, appId, version, Flags.RESTRICT_DATA_PLANE_BINDINGS);
}
@Override public String queryDispatchPolicy() { return queryDispatchPolicy; }
- @Override public String phraseOptimization() { return phraseOptimization; }
@Override public double defaultTermwiseLimit() { return defaultTermwiseLimit; }
@Override public boolean useThreePhaseUpdates() { return useThreePhaseUpdates; }
@Override public String feedSequencerType() { return feedSequencer; }
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 c15aa5031a1..5602d217923 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
@@ -70,13 +70,6 @@ public class Flags {
"Takes effect at redeployment (requires restart)",
ZONE_ID, APPLICATION_ID);
- public static final UnboundStringFlag PHRASE_OPTIMIZATION = defineStringFlag(
- "phrase-optimization", "split",
- List.of("baldersheim"), "2022-08-28", "2023-01-01",
- "Select phase optimization, valid values are 'split', 'off'.",
- "Takes effect at redeployment",
- ZONE_ID, APPLICATION_ID);
-
public static final UnboundStringFlag FEED_SEQUENCER_TYPE = defineStringFlag(
"feed-sequencer-type", "THROUGHPUT",
List.of("baldersheim"), "2020-12-02", "2023-01-01",