diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-21 10:35:38 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-21 10:39:04 +0100 |
commit | 09853c28b746d3d206ab51289423a4d62a8f05ef (patch) | |
tree | a2f72ba9981ea03bd1dee4fde9d590cf5ed64fe5 | |
parent | ccc4d65ca958036b37a4fbbbcca443f2a873077f (diff) |
global phase have feature has been completed. No need for config control.
7 files changed, 10 insertions, 31 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 1687a3053fd..6c9070c9d8a 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 @@ -27,8 +27,6 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutorService; -import static com.yahoo.config.provision.NodeResources.Architecture; - /** * Model context containing state provided to model factories. * @@ -108,7 +106,7 @@ public interface ModelContext { @ModelFeatureFlag(owners = {"arnej", "andreer"}) default List<String> ignoredHttpUserAgents() { return List.of(); } @ModelFeatureFlag(owners = {"tokle"}) default boolean enableProxyProtocolMixedMode() { return true; } @ModelFeatureFlag(owners = {"arnej"}) default String logFileCompressionAlgorithm(String defVal) { return defVal; } - @ModelFeatureFlag(owners = {"arnej, bjorncs"}) default boolean enableGlobalPhase() { return true; } + @ModelFeatureFlag(owners = {"arnej, bjorncs"}, removeAfter = "8.262") default boolean enableGlobalPhase() { return true; } @ModelFeatureFlag(owners = {"baldersheim"}, comment = "Select summary decode type") default String summaryDecodePolicy() { return "eager"; } @ModelFeatureFlag(owners = {"baldersheim"}, removeAfter = "8.261") default boolean enableNestedMultivalueGrouping() { return true; } @ModelFeatureFlag(owners = {"vekterli"}) default int contentLayerMetadataFeatureLevel() { return 0; } diff --git a/config-model/src/main/java/com/yahoo/schema/derived/RawRankProfile.java b/config-model/src/main/java/com/yahoo/schema/derived/RawRankProfile.java index 388d2627224..6a1ebb39ac8 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/RawRankProfile.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/RawRankProfile.java @@ -36,7 +36,6 @@ import java.util.ListIterator; import java.util.Map; import java.util.OptionalDouble; import java.util.Set; -import java.util.stream.Collectors; /** * A rank profile derived from a search definition, containing exactly the features available natively in the server diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java index 31468c05b99..6e4c14bdeac 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java @@ -51,7 +51,6 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> private final ApplicationContainerCluster owningCluster; private final List<SearchCluster> searchClusters = new LinkedList<>(); private final Collection<String> schemasWithGlobalPhase; - private final boolean globalPhase; private final ApplicationPackage app; private QueryProfiles queryProfiles; @@ -60,7 +59,6 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> public ContainerSearch(DeployState deployState, ApplicationContainerCluster cluster, SearchChains chains) { super(chains); - this.globalPhase = deployState.featureFlags().enableGlobalPhase(); this.schemasWithGlobalPhase = getSchemasWithGlobalPhase(deployState); this.app = deployState.getApplicationPackage(); this.owningCluster = cluster; @@ -95,16 +93,14 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> var dispatcher = new DispatcherComponent(indexed, dispatcherClass); owningCluster.addComponent(dispatcher); } - if (globalPhase) { - for (var documentDb : searchCluster.getDocumentDbs()) { - if ( ! schemasWithGlobalPhase.contains(documentDb.getSchemaName())) continue; - var factory = new RankProfilesEvaluatorComponent(documentDb); - if ( ! owningCluster.getComponentsMap().containsKey(factory.getComponentId())) { - var onnxModels = documentDb.getDerivedConfiguration().getRankProfileList().getOnnxModels(); - onnxModels.asMap().forEach( - (__, model) -> owningCluster.onnxModelCost().registerModel(app.getFile(model.getFilePath()), model.onnxModelOptions())); - owningCluster.addComponent(factory); - } + for (var documentDb : searchCluster.getDocumentDbs()) { + if ( ! schemasWithGlobalPhase.contains(documentDb.getSchemaName())) continue; + var factory = new RankProfilesEvaluatorComponent(documentDb); + if ( ! owningCluster.getComponentsMap().containsKey(factory.getComponentId())) { + var onnxModels = documentDb.getDerivedConfiguration().getRankProfileList().getOnnxModels(); + onnxModels.asMap().forEach( + (__, model) -> owningCluster.onnxModelCost().registerModel(app.getFile(model.getFilePath()), model.onnxModelOptions())); + owningCluster.addComponent(factory); } } } @@ -176,7 +172,6 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains> } scB.rankprofiles(new QrSearchersConfig.Searchcluster.Rankprofiles.Builder().configid(sys.getConfigId())); scB.indexingmode(QrSearchersConfig.Searchcluster.Indexingmode.Enum.valueOf(sys.getIndexingModeName())); - scB.globalphase(globalPhase); if ( ! (sys instanceof IndexedSearchCluster)) { scB.storagecluster(new QrSearchersConfig.Searchcluster.Storagecluster.Builder(). routespec(((StreamingSearchCluster)sys).getStorageRouteSpec())); 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 a75e2e7c5aa..76af53eba90 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 @@ -200,7 +200,6 @@ public class ModelContextImpl implements ModelContext { private final int rpc_num_targets; private final int rpc_events_before_wakeup; private final int heapPercentage; - private final boolean enableGlobalPhase; private final String summaryDecodePolicy; private final boolean alwaysMarkPhraseExpensive; private final int contentLayerMetadataFeatureLevel; @@ -245,7 +244,6 @@ public class ModelContextImpl implements ModelContext { this.queryDispatchPolicy = flagValue(source, appId, version, Flags.QUERY_DISPATCH_POLICY); this.queryDispatchWarmup = flagValue(source, appId, version, PermanentFlags.QUERY_DISPATCH_WARMUP); this.heapPercentage = flagValue(source, appId, version, PermanentFlags.HEAP_SIZE_PERCENTAGE); - this.enableGlobalPhase = flagValue(source, appId, version, Flags.ENABLE_GLOBAL_PHASE); this.summaryDecodePolicy = flagValue(source, appId, version, Flags.SUMMARY_DECODE_POLICY); this.contentLayerMetadataFeatureLevel = flagValue(source, appId, version, Flags.CONTENT_LAYER_METADATA_FEATURE_LEVEL); this.dynamicHeapSize = flagValue(source, appId, version, Flags.DYNAMIC_HEAP_SIZE); @@ -299,7 +297,6 @@ public class ModelContextImpl implements ModelContext { } return defVal; } - @Override public boolean enableGlobalPhase() { return enableGlobalPhase; } @Override public boolean alwaysMarkPhraseExpensive() { return alwaysMarkPhraseExpensive; } @Override public int contentLayerMetadataFeatureLevel() { return contentLayerMetadataFeatureLevel; } @Override public boolean dynamicHeapSize() { return dynamicHeapSize; } diff --git a/container-core/src/main/resources/configdefinitions/container.qr-searchers.def b/container-core/src/main/resources/configdefinitions/container.qr-searchers.def index 96bd41483c6..7d5788c05cc 100644 --- a/container-core/src/main/resources/configdefinitions/container.qr-searchers.def +++ b/container-core/src/main/resources/configdefinitions/container.qr-searchers.def @@ -71,6 +71,3 @@ searchcluster[].indexingmode enum { REALTIME, STREAMING } default=REALTIME ## Storage cluster route to use for search cluster if indexingmode is streaming. searchcluster[].storagecluster.routespec string default="" - -## Enable global phase ranking -searchcluster[].globalphase bool default=false diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java index 12f8cdf9852..e20c4271fe0 100644 --- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java @@ -83,7 +83,7 @@ public class ClusterSearcher extends Searcher { int searchClusterIndex = clusterConfig.clusterId(); searchClusterName = clusterConfig.clusterName(); QrSearchersConfig.Searchcluster searchClusterConfig = getSearchClusterConfigFromClusterName(qrsConfig, searchClusterName); - this.globalPhaseRanker = searchClusterConfig.globalphase() ? globalPhaseRanker : null; + this.globalPhaseRanker = globalPhaseRanker; schemas = new LinkedHashSet<>(); maxQueryTimeout = ParameterParser.asMilliSeconds(clusterConfig.maxQueryTimeout(), DEFAULT_MAX_QUERY_TIMEOUT); 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 64218dbc800..f4096cc343f 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -295,13 +295,6 @@ public class Flags { "Takes effect on the next tick.", NODE_TYPE, HOSTNAME); - public static final UnboundBooleanFlag ENABLE_GLOBAL_PHASE = defineFeatureFlag( - "enable-global-phase", true, - List.of("arnej", "bjorncs"), "2023-02-28", "2024-01-10", - "Enable global phase ranking", - "Takes effect at redeployment", - INSTANCE_ID); - public static final UnboundBooleanFlag ENABLE_THE_ONE_THAT_SHOULD_NOT_BE_NAMED = defineFeatureFlag( "enable-the-one-that-should-not-be-named", false, List.of("hmusum"), "2023-05-08", "2023-12-01", "Whether to enable the one program that should not be named", |