diff --git a/server/src/main/java/org/elasticsearch/TransportVersions.java b/server/src/main/java/org/elasticsearch/TransportVersions.java index 81e4cca69769c..96ec112b06597 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersions.java +++ b/server/src/main/java/org/elasticsearch/TransportVersions.java @@ -351,23 +351,6 @@ static TransportVersion def(int id) { public static final TransportVersion ML_INFERENCE_LLAMA_ADDED = def(9_125_0_00); public static final TransportVersion SHARD_WRITE_LOAD_IN_CLUSTER_INFO = def(9_126_0_00); public static final TransportVersion ESQL_SAMPLE_OPERATOR_STATUS = def(9_127_0_00); - public static final TransportVersion ESQL_TOPN_TIMINGS = def(9_128_0_00); - public static final TransportVersion NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS = def(9_129_0_00); - public static final TransportVersion RERANK_SNIPPETS = def(9_130_0_00); - public static final TransportVersion PIPELINE_TRACKING_INFO = def(9_131_0_00); - public static final TransportVersion COMPONENT_TEMPLATE_TRACKING_INFO = def(9_132_0_00); - public static final TransportVersion TO_CHILD_BLOCK_JOIN_QUERY = def(9_133_0_00); - public static final TransportVersion ML_INFERENCE_AI21_COMPLETION_ADDED = def(9_134_0_00); - public static final TransportVersion TRANSPORT_NODE_USAGE_STATS_FOR_THREAD_POOLS_ACTION = def(9_135_0_00); - public static final TransportVersion INDEX_TEMPLATE_TRACKING_INFO = def(9_136_0_00); - public static final TransportVersion EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO = def(9_137_0_00); - public static final TransportVersion SIMULATE_INGEST_MAPPING_MERGE_TYPE = def(9_138_0_00); - public static final TransportVersion ESQL_LOOKUP_JOIN_ON_MANY_FIELDS = def(9_139_0_00); - public static final TransportVersion SIMULATE_INGEST_EFFECTIVE_MAPPING = def(9_140_0_00); - public static final TransportVersion RESOLVE_INDEX_MODE_ADDED = def(9_141_0_00); - public static final TransportVersion DATA_STREAM_WRITE_INDEX_ONLY_SETTINGS = def(9_142_0_00); - public static final TransportVersion SCRIPT_RESCORER = def(9_143_0_00); - public static final TransportVersion ESQL_LOOKUP_OPERATOR_EMITTED_ROWS = def(9_144_0_00); public static final TransportVersion ALLOCATION_DECISION_NOT_PREFERRED = def(9_145_0_00); /* diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/resolve/ResolveIndexAction.java b/server/src/main/java/org/elasticsearch/action/admin/indices/resolve/ResolveIndexAction.java index a105a570864f4..4d0864bb8caae 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/resolve/ResolveIndexAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/resolve/ResolveIndexAction.java @@ -9,7 +9,7 @@ package org.elasticsearch.action.admin.indices.resolve; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.action.ActionResponse; @@ -73,6 +73,8 @@ public class ResolveIndexAction extends ActionType public static final String NAME = "indices:admin/resolve/index"; public static final RemoteClusterActionType REMOTE_TYPE = new RemoteClusterActionType<>(NAME, Response::new); + private static final TransportVersion RESOLVE_INDEX_MODE_ADDED = TransportVersion.fromName("resolve_index_mode_added"); + private ResolveIndexAction() { super(NAME); } @@ -190,7 +192,7 @@ public static class ResolvedIndex extends ResolvedIndexAbstraction implements Wr this.aliases = in.readStringArray(); this.attributes = in.readStringArray(); this.dataStream = in.readOptionalString(); - if (in.getTransportVersion().onOrAfter(TransportVersions.RESOLVE_INDEX_MODE_ADDED)) { + if (in.getTransportVersion().supports(RESOLVE_INDEX_MODE_ADDED)) { this.mode = IndexMode.readFrom(in); } else { this.mode = null; @@ -231,7 +233,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeStringArray(aliases); out.writeStringArray(attributes); out.writeOptionalString(dataStream); - if (out.getTransportVersion().onOrAfter(TransportVersions.RESOLVE_INDEX_MODE_ADDED)) { + if (out.getTransportVersion().supports(RESOLVE_INDEX_MODE_ADDED)) { IndexMode.writeTo(mode, out); } } diff --git a/server/src/main/java/org/elasticsearch/action/bulk/SimulateBulkRequest.java b/server/src/main/java/org/elasticsearch/action/bulk/SimulateBulkRequest.java index 87f71dfce99fd..14d9fa51f1add 100644 --- a/server/src/main/java/org/elasticsearch/action/bulk/SimulateBulkRequest.java +++ b/server/src/main/java/org/elasticsearch/action/bulk/SimulateBulkRequest.java @@ -9,6 +9,7 @@ package org.elasticsearch.action.bulk; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.cluster.metadata.ComponentTemplate; import org.elasticsearch.cluster.metadata.ComposableIndexTemplate; @@ -99,6 +100,11 @@ * processor definitions. */ public class SimulateBulkRequest extends BulkRequest { + + private static final TransportVersion SIMULATE_INGEST_MAPPING_MERGE_TYPE = TransportVersion.fromName( + "simulate_ingest_mapping_merge_type" + ); + private final Map> pipelineSubstitutions; private final Map> componentTemplateSubstitutions; private final Map> indexTemplateSubstitutions; @@ -150,7 +156,7 @@ public SimulateBulkRequest(StreamInput in) throws IOException { } else { mappingAddition = Map.of(); } - if (in.getTransportVersion().onOrAfter(TransportVersions.SIMULATE_INGEST_MAPPING_MERGE_TYPE)) { + if (in.getTransportVersion().supports(SIMULATE_INGEST_MAPPING_MERGE_TYPE)) { mappingMergeType = in.readOptionalString(); } else { mappingMergeType = null; @@ -168,7 +174,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_17_0)) { out.writeGenericValue(mappingAddition); } - if (out.getTransportVersion().onOrAfter(TransportVersions.SIMULATE_INGEST_MAPPING_MERGE_TYPE)) { + if (out.getTransportVersion().supports(SIMULATE_INGEST_MAPPING_MERGE_TYPE)) { out.writeOptionalString(mappingMergeType); } } diff --git a/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java b/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java index e2d990ba5110e..0306ecf3920e4 100644 --- a/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java +++ b/server/src/main/java/org/elasticsearch/action/datastreams/UpdateDataStreamSettingsAction.java @@ -9,6 +9,7 @@ package org.elasticsearch.action.datastreams; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionType; @@ -41,6 +42,10 @@ public class UpdateDataStreamSettingsAction extends ActionType ignoredFields; @@ -57,7 +63,7 @@ public SimulateIndexResponse(StreamInput in) throws IOException { } else { this.ignoredFields = List.of(); } - if (in.getTransportVersion().onOrAfter(TransportVersions.SIMULATE_INGEST_EFFECTIVE_MAPPING)) { + if (in.getTransportVersion().supports(SIMULATE_INGEST_EFFECTIVE_MAPPING)) { if (in.readBoolean()) { this.effectiveMapping = CompressedXContent.readCompressedString(in); } else { @@ -149,7 +155,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(TransportVersions.SIMULATE_IGNORED_FIELDS)) { out.writeStringCollection(ignoredFields); } - if (out.getTransportVersion().onOrAfter(TransportVersions.SIMULATE_INGEST_EFFECTIVE_MAPPING)) { + if (out.getTransportVersion().supports(SIMULATE_INGEST_EFFECTIVE_MAPPING)) { out.writeBoolean(effectiveMapping != null); if (effectiveMapping != null) { effectiveMapping.writeTo(out); diff --git a/server/src/main/java/org/elasticsearch/cluster/NodeUsageStatsForThreadPoolsCollector.java b/server/src/main/java/org/elasticsearch/cluster/NodeUsageStatsForThreadPoolsCollector.java index d5862ce737d43..0921bde87d353 100644 --- a/server/src/main/java/org/elasticsearch/cluster/NodeUsageStatsForThreadPoolsCollector.java +++ b/server/src/main/java/org/elasticsearch/cluster/NodeUsageStatsForThreadPoolsCollector.java @@ -9,7 +9,7 @@ package org.elasticsearch.cluster; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.cluster.node.usage.NodeUsageStatsForThreadPoolsAction; import org.elasticsearch.action.admin.cluster.node.usage.TransportNodeUsageStatsForThreadPoolsAction; @@ -33,6 +33,10 @@ public void collectUsageStats( } }; + private static final TransportVersion TRANSPORT_NODE_USAGE_STATS_FOR_THREAD_POOLS_ACTION = TransportVersion.fromName( + "transport_node_usage_stats_for_thread_pools_action" + ); + /** * Collects the thread pool usage stats ({@link NodeUsageStatsForThreadPools}) for each node in the cluster. * @@ -44,7 +48,7 @@ public void collectUsageStats( ActionListener> listener ) { var dataNodeIds = clusterState.nodes().getDataNodes().values().stream().map(node -> node.getId()).toArray(String[]::new); - if (clusterState.getMinTransportVersion().onOrAfter(TransportVersions.TRANSPORT_NODE_USAGE_STATS_FOR_THREAD_POOLS_ACTION)) { + if (clusterState.getMinTransportVersion().supports(TRANSPORT_NODE_USAGE_STATS_FOR_THREAD_POOLS_ACTION)) { client.execute( TransportNodeUsageStatsForThreadPoolsAction.TYPE, new NodeUsageStatsForThreadPoolsAction.Request(dataNodeIds), diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/ComponentTemplate.java b/server/src/main/java/org/elasticsearch/cluster/metadata/ComponentTemplate.java index 3b8bdc96307c3..92d2fe3460a86 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/ComponentTemplate.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/ComponentTemplate.java @@ -9,6 +9,7 @@ package org.elasticsearch.cluster.metadata; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.action.admin.indices.rollover.RolloverConfiguration; import org.elasticsearch.cluster.Diff; @@ -60,6 +61,8 @@ public class ComponentTemplate implements SimpleDiffable, ToX PARSER.declareLong(ConstructingObjectParser.optionalConstructorArg(), MODIFIED_DATE_MILLIS); } + private static final TransportVersion COMPONENT_TEMPLATE_TRACKING_INFO = TransportVersion.fromName("component_template_tracking_info"); + private final Template template; @Nullable private final Long version; @@ -113,7 +116,7 @@ public ComponentTemplate(StreamInput in) throws IOException { } else { deprecated = null; } - if (in.getTransportVersion().onOrAfter(TransportVersions.COMPONENT_TEMPLATE_TRACKING_INFO)) { + if (in.getTransportVersion().supports(COMPONENT_TEMPLATE_TRACKING_INFO)) { this.createdDateMillis = in.readOptionalLong(); this.modifiedDateMillis = in.readOptionalLong(); } else { @@ -165,7 +168,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) { out.writeOptionalBoolean(this.deprecated); } - if (out.getTransportVersion().onOrAfter(TransportVersions.COMPONENT_TEMPLATE_TRACKING_INFO)) { + if (out.getTransportVersion().supports(COMPONENT_TEMPLATE_TRACKING_INFO)) { out.writeOptionalLong(this.createdDateMillis); out.writeOptionalLong(this.modifiedDateMillis); } diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/ComposableIndexTemplate.java b/server/src/main/java/org/elasticsearch/cluster/metadata/ComposableIndexTemplate.java index 8df0480cd9976..95736eabc234a 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/ComposableIndexTemplate.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/ComposableIndexTemplate.java @@ -9,6 +9,7 @@ package org.elasticsearch.cluster.metadata; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.action.admin.indices.rollover.RolloverConfiguration; import org.elasticsearch.cluster.Diff; @@ -107,6 +108,8 @@ public class ComposableIndexTemplate implements SimpleDiffable indexPatterns; @Nullable private final Template template; @@ -181,7 +184,7 @@ public ComposableIndexTemplate(StreamInput in) throws IOException { } else { this.deprecated = null; } - if (in.getTransportVersion().onOrAfter(TransportVersions.INDEX_TEMPLATE_TRACKING_INFO)) { + if (in.getTransportVersion().supports(INDEX_TEMPLATE_TRACKING_INFO)) { this.createdDateMillis = in.readOptionalLong(); this.modifiedDateMillis = in.readOptionalLong(); } else { @@ -298,7 +301,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) { out.writeOptionalBoolean(deprecated); } - if (out.getTransportVersion().onOrAfter(TransportVersions.INDEX_TEMPLATE_TRACKING_INFO)) { + if (out.getTransportVersion().supports(INDEX_TEMPLATE_TRACKING_INFO)) { out.writeOptionalLong(createdDateMillis); out.writeOptionalLong(modifiedDateMillis); } diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/ClusterBalanceStats.java b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/ClusterBalanceStats.java index ca5daa97f2a30..44e432701f065 100644 --- a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/ClusterBalanceStats.java +++ b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/ClusterBalanceStats.java @@ -9,7 +9,7 @@ package org.elasticsearch.cluster.routing.allocation.allocator; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.cluster.ClusterInfo; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.metadata.Metadata; @@ -214,6 +214,10 @@ public record NodeBalanceStats( private static final String UNKNOWN_NODE_ID = "UNKNOWN"; + private static final TransportVersion NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS = TransportVersion.fromName( + "node_weights_added_to_node_balance_stats" + ); + private static NodeBalanceStats createFrom( RoutingNode routingNode, Metadata metadata, @@ -272,9 +276,7 @@ public static NodeBalanceStats readFrom(StreamInput in) throws IOException { in.readDouble(), in.readLong(), in.readLong(), - in.getTransportVersion().onOrAfter(TransportVersions.NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS) - ? in.readOptionalDouble() - : null + in.getTransportVersion().supports(NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS) ? in.readOptionalDouble() : null ); } @@ -287,7 +289,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeDouble(forecastWriteLoad); out.writeLong(forecastShardSize); out.writeLong(actualShardSize); - if (out.getTransportVersion().onOrAfter(TransportVersions.NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS)) { + if (out.getTransportVersion().supports(NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS)) { out.writeOptionalDouble(nodeWeight); } } diff --git a/server/src/main/java/org/elasticsearch/index/query/ToChildBlockJoinQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/ToChildBlockJoinQueryBuilder.java index 1e6e6feee3f42..2fb402347cc33 100644 --- a/server/src/main/java/org/elasticsearch/index/query/ToChildBlockJoinQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/ToChildBlockJoinQueryBuilder.java @@ -13,7 +13,6 @@ import org.apache.lucene.search.join.BitSetProducer; import org.apache.lucene.search.join.ToChildBlockJoinQuery; import org.elasticsearch.TransportVersion; -import org.elasticsearch.TransportVersions; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.lucene.search.Queries; @@ -29,6 +28,9 @@ */ public class ToChildBlockJoinQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "to_child_block_join"; + + private static final TransportVersion TO_CHILD_BLOCK_JOIN_QUERY = TransportVersion.fromName("to_child_block_join_query"); + private final QueryBuilder parentQueryBuilder; public ToChildBlockJoinQueryBuilder(QueryBuilder parentQueryBuilder) { @@ -108,6 +110,6 @@ public String getWriteableName() { @Override public TransportVersion getMinimalSupportedVersion() { - return TransportVersions.TO_CHILD_BLOCK_JOIN_QUERY; + return TO_CHILD_BLOCK_JOIN_QUERY; } } diff --git a/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java b/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java index 9770afc4653ed..eebb10cc837d3 100644 --- a/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java +++ b/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java @@ -76,6 +76,8 @@ PipelineConfiguration build() { } } + private static final TransportVersion PIPELINE_TRACKING_INFO = TransportVersion.fromName("pipeline_tracking_info"); + private final String id; private final Map config; @@ -253,7 +255,7 @@ PipelineConfiguration maybeUpgradeProcessors(String type, IngestMetadata.Process /** Remove system properties from config if they aren't supported by the transport version */ private Map configForTransport(final TransportVersion transportVersion) { - final boolean transportSupportsNewProperties = transportVersion.onOrAfter(TransportVersions.PIPELINE_TRACKING_INFO); + final boolean transportSupportsNewProperties = transportVersion.supports(PIPELINE_TRACKING_INFO); final boolean noNewProperties = config.containsKey(Pipeline.CREATED_DATE_MILLIS) == false && config.containsKey(Pipeline.MODIFIED_DATE_MILLIS) == false; diff --git a/server/src/main/java/org/elasticsearch/repositories/RepositoriesStats.java b/server/src/main/java/org/elasticsearch/repositories/RepositoriesStats.java index f5dec24bd550e..6359e09b01a55 100644 --- a/server/src/main/java/org/elasticsearch/repositories/RepositoriesStats.java +++ b/server/src/main/java/org/elasticsearch/repositories/RepositoriesStats.java @@ -9,6 +9,7 @@ package org.elasticsearch.repositories; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; @@ -70,12 +71,16 @@ public record SnapshotStats( long totalUploadReadTimeInMillis ) implements ToXContentObject, Writeable { + private static final TransportVersion EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO = TransportVersion.fromName( + "extended_snapshot_stats_in_node_info" + ); + public static final SnapshotStats ZERO = new SnapshotStats(0, 0); public static SnapshotStats readFrom(StreamInput in) throws IOException { final long totalReadThrottledNanos = in.readVLong(); final long totalWriteThrottledNanos = in.readVLong(); - if (in.getTransportVersion().onOrAfter(TransportVersions.EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO)) { + if (in.getTransportVersion().supports(EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO)) { return new SnapshotStats( in.readVLong(), in.readVLong(), @@ -128,7 +133,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws public void writeTo(StreamOutput out) throws IOException { out.writeVLong(totalReadThrottledNanos); out.writeVLong(totalWriteThrottledNanos); - if (out.getTransportVersion().onOrAfter(TransportVersions.EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO)) { + if (out.getTransportVersion().supports(EXTENDED_SNAPSHOT_STATS_IN_NODE_INFO)) { out.writeVLong(shardSnapshotsStarted); out.writeVLong(shardSnapshotsCompleted); out.writeVLong(shardSnapshotsInProgress); diff --git a/server/src/main/java/org/elasticsearch/search/rank/feature/RankFeatureDoc.java b/server/src/main/java/org/elasticsearch/search/rank/feature/RankFeatureDoc.java index afbb32fd829f7..46c0225d7e3a0 100644 --- a/server/src/main/java/org/elasticsearch/search/rank/feature/RankFeatureDoc.java +++ b/server/src/main/java/org/elasticsearch/search/rank/feature/RankFeatureDoc.java @@ -10,7 +10,7 @@ package org.elasticsearch.search.rank.feature; import org.apache.lucene.search.Explanation; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.search.rank.RankDoc; @@ -27,6 +27,8 @@ public class RankFeatureDoc extends RankDoc { public static final String NAME = "rank_feature_doc"; + private static final TransportVersion RERANK_SNIPPETS = TransportVersion.fromName("rerank_snippets"); + // TODO: update to support more than 1 fields; and not restrict to string data public List featureData; @@ -36,7 +38,7 @@ public RankFeatureDoc(int doc, float score, int shardIndex) { public RankFeatureDoc(StreamInput in) throws IOException { super(in); - if (in.getTransportVersion().onOrAfter(TransportVersions.RERANK_SNIPPETS)) { + if (in.getTransportVersion().supports(RERANK_SNIPPETS)) { featureData = in.readOptionalStringCollectionAsList(); } else { String featureDataString = in.readOptionalString(); @@ -55,7 +57,7 @@ public void featureData(List featureData) { @Override protected void doWriteTo(StreamOutput out) throws IOException { - if (out.getTransportVersion().onOrAfter(TransportVersions.RERANK_SNIPPETS)) { + if (out.getTransportVersion().supports(RERANK_SNIPPETS)) { out.writeOptionalStringCollection(featureData); } else { out.writeOptionalString(featureData.get(0)); diff --git a/server/src/main/java/org/elasticsearch/search/rescore/ScriptRescorerBuilder.java b/server/src/main/java/org/elasticsearch/search/rescore/ScriptRescorerBuilder.java index 739779f768066..72b5c3ebbf781 100644 --- a/server/src/main/java/org/elasticsearch/search/rescore/ScriptRescorerBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/rescore/ScriptRescorerBuilder.java @@ -11,7 +11,6 @@ import org.elasticsearch.ElasticsearchException; import org.elasticsearch.TransportVersion; -import org.elasticsearch.TransportVersions; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.index.query.MatchAllQueryBuilder; @@ -36,6 +35,8 @@ public class ScriptRescorerBuilder extends RescorerBuilder PARSER = new ObjectParser<>(NAME, false, Builder::new); + private static final TransportVersion SCRIPT_RESCORER = TransportVersion.fromName("script_rescorer"); + static { PARSER.declareObject(Builder::setScript, (p, c) -> Script.parse(p), SCRIPT_FIELD); } @@ -89,7 +90,7 @@ public String getWriteableName() { @Override public TransportVersion getMinimalSupportedVersion() { - return TransportVersions.SCRIPT_RESCORER; + return SCRIPT_RESCORER; } @Override diff --git a/server/src/main/java/org/elasticsearch/search/vectors/KnnScoreDocQueryBuilder.java b/server/src/main/java/org/elasticsearch/search/vectors/KnnScoreDocQueryBuilder.java index 17403bdbb05c9..ddea64b43abaa 100644 --- a/server/src/main/java/org/elasticsearch/search/vectors/KnnScoreDocQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/vectors/KnnScoreDocQueryBuilder.java @@ -36,6 +36,9 @@ */ public class KnnScoreDocQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "knn_score_doc"; + + private static final TransportVersion TO_CHILD_BLOCK_JOIN_QUERY = TransportVersion.fromName("to_child_block_join_query"); + private final ScoreDoc[] scoreDocs; private final String fieldName; private final VectorData queryVector; @@ -85,7 +88,7 @@ public KnnScoreDocQueryBuilder(StreamInput in) throws IOException { } else { this.vectorSimilarity = null; } - if (in.getTransportVersion().onOrAfter(TransportVersions.TO_CHILD_BLOCK_JOIN_QUERY)) { + if (in.getTransportVersion().supports(TO_CHILD_BLOCK_JOIN_QUERY)) { this.filterQueries = readQueries(in); } else { this.filterQueries = List.of(); @@ -132,7 +135,7 @@ protected void doWriteTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_15_0)) { out.writeOptionalFloat(vectorSimilarity); } - if (out.getTransportVersion().onOrAfter(TransportVersions.TO_CHILD_BLOCK_JOIN_QUERY)) { + if (out.getTransportVersion().supports(TO_CHILD_BLOCK_JOIN_QUERY)) { writeQueries(out, filterQueries); } } diff --git a/server/src/main/resources/transport/definitions/referable/component_template_tracking_info.csv b/server/src/main/resources/transport/definitions/referable/component_template_tracking_info.csv new file mode 100644 index 0000000000000..dd807ed104861 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/component_template_tracking_info.csv @@ -0,0 +1 @@ +9132000 diff --git a/server/src/main/resources/transport/definitions/referable/data_stream_write_index_only_settings.csv b/server/src/main/resources/transport/definitions/referable/data_stream_write_index_only_settings.csv new file mode 100644 index 0000000000000..0975852abcd2a --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/data_stream_write_index_only_settings.csv @@ -0,0 +1 @@ +9142000 diff --git a/server/src/main/resources/transport/definitions/referable/esql_lookup_join_on_many_fields.csv b/server/src/main/resources/transport/definitions/referable/esql_lookup_join_on_many_fields.csv new file mode 100644 index 0000000000000..805d7da576989 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/esql_lookup_join_on_many_fields.csv @@ -0,0 +1 @@ +9139000 diff --git a/server/src/main/resources/transport/definitions/referable/esql_lookup_operator_emitted_rows.csv b/server/src/main/resources/transport/definitions/referable/esql_lookup_operator_emitted_rows.csv new file mode 100644 index 0000000000000..ed3d0eb73447e --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/esql_lookup_operator_emitted_rows.csv @@ -0,0 +1 @@ +9144000 diff --git a/server/src/main/resources/transport/definitions/referable/esql_topn_timings.csv b/server/src/main/resources/transport/definitions/referable/esql_topn_timings.csv new file mode 100644 index 0000000000000..a2c8f514ccf68 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/esql_topn_timings.csv @@ -0,0 +1 @@ +9128000 diff --git a/server/src/main/resources/transport/definitions/referable/extended_snapshot_stats_in_node_info.csv b/server/src/main/resources/transport/definitions/referable/extended_snapshot_stats_in_node_info.csv new file mode 100644 index 0000000000000..6f87d90721f22 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/extended_snapshot_stats_in_node_info.csv @@ -0,0 +1 @@ +9137000 diff --git a/server/src/main/resources/transport/definitions/referable/index_template_tracking_info.csv b/server/src/main/resources/transport/definitions/referable/index_template_tracking_info.csv new file mode 100644 index 0000000000000..d230a74e3fe6d --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/index_template_tracking_info.csv @@ -0,0 +1 @@ +9136000 diff --git a/server/src/main/resources/transport/definitions/referable/ml_inference_ai21_completion_added.csv b/server/src/main/resources/transport/definitions/referable/ml_inference_ai21_completion_added.csv new file mode 100644 index 0000000000000..765c68f1d00ba --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/ml_inference_ai21_completion_added.csv @@ -0,0 +1 @@ +9134000 diff --git a/server/src/main/resources/transport/definitions/referable/node_weights_added_to_node_balance_stats.csv b/server/src/main/resources/transport/definitions/referable/node_weights_added_to_node_balance_stats.csv new file mode 100644 index 0000000000000..c567cc9475342 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/node_weights_added_to_node_balance_stats.csv @@ -0,0 +1 @@ +9129000 diff --git a/server/src/main/resources/transport/definitions/referable/pipeline_tracking_info.csv b/server/src/main/resources/transport/definitions/referable/pipeline_tracking_info.csv new file mode 100644 index 0000000000000..7d1b25e93c716 --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/pipeline_tracking_info.csv @@ -0,0 +1 @@ +9131000 diff --git a/server/src/main/resources/transport/definitions/referable/rerank_snippets.csv b/server/src/main/resources/transport/definitions/referable/rerank_snippets.csv new file mode 100644 index 0000000000000..7fb4a02ad4adb --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/rerank_snippets.csv @@ -0,0 +1 @@ +9130000 diff --git a/server/src/main/resources/transport/definitions/referable/resolve_index_mode_added.csv b/server/src/main/resources/transport/definitions/referable/resolve_index_mode_added.csv new file mode 100644 index 0000000000000..fc72fd143f43b --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/resolve_index_mode_added.csv @@ -0,0 +1 @@ +9141000 diff --git a/server/src/main/resources/transport/definitions/referable/script_rescorer.csv b/server/src/main/resources/transport/definitions/referable/script_rescorer.csv new file mode 100644 index 0000000000000..80cb3edab83dd --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/script_rescorer.csv @@ -0,0 +1 @@ +9143000 diff --git a/server/src/main/resources/transport/definitions/referable/simulate_ingest_effective_mapping.csv b/server/src/main/resources/transport/definitions/referable/simulate_ingest_effective_mapping.csv new file mode 100644 index 0000000000000..b1259862ac98b --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/simulate_ingest_effective_mapping.csv @@ -0,0 +1 @@ +9140000 diff --git a/server/src/main/resources/transport/definitions/referable/simulate_ingest_mapping_merge_type.csv b/server/src/main/resources/transport/definitions/referable/simulate_ingest_mapping_merge_type.csv new file mode 100644 index 0000000000000..230632e63386b --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/simulate_ingest_mapping_merge_type.csv @@ -0,0 +1 @@ +9138000 diff --git a/server/src/main/resources/transport/definitions/referable/to_child_block_join_query.csv b/server/src/main/resources/transport/definitions/referable/to_child_block_join_query.csv new file mode 100644 index 0000000000000..e2018c33ea6cc --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/to_child_block_join_query.csv @@ -0,0 +1 @@ +9133000 diff --git a/server/src/main/resources/transport/definitions/referable/transport_node_usage_stats_for_thread_pools_action.csv b/server/src/main/resources/transport/definitions/referable/transport_node_usage_stats_for_thread_pools_action.csv new file mode 100644 index 0000000000000..37c5f2072d39a --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/transport_node_usage_stats_for_thread_pools_action.csv @@ -0,0 +1 @@ +9135000 diff --git a/server/src/main/resources/transport/upper_bounds/9.2.csv b/server/src/main/resources/transport/upper_bounds/9.2.csv index a7e0269c3deaa..4ae9cd056fcb3 100644 --- a/server/src/main/resources/transport/upper_bounds/9.2.csv +++ b/server/src/main/resources/transport/upper_bounds/9.2.csv @@ -1 +1 @@ -esql_split_on_big_values,9116000 +esql_lookup_operator_emitted_rows,9144000 diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/allocator/NodeBalanceStatsTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/allocator/NodeBalanceStatsTests.java index ef04979089a68..463016aff21a5 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/allocator/NodeBalanceStatsTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/allocator/NodeBalanceStatsTests.java @@ -27,6 +27,9 @@ public class NodeBalanceStatsTests extends AbstractWireSerializingTestCase { private static final String UNKNOWN = "UNKNOWN"; private static final int UNDESIRED_SHARD_ALLOCATION_DEFAULT_VALUE = -1; + private static final TransportVersion NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS = TransportVersion.fromName( + "node_weights_added_to_node_balance_stats" + ); @Override protected Writeable.Reader instanceReader() { @@ -62,7 +65,7 @@ public void testSerializationWithTransportVersionV_8_12_0() throws IOException { final var oldVersion = TransportVersionUtils.randomVersionBetween( random(), TransportVersions.V_8_12_0, - TransportVersionUtils.getPreviousVersion(TransportVersions.NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS) + TransportVersionUtils.getPreviousVersion(NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS) ); ClusterBalanceStats.NodeBalanceStats deserialized = copyInstance(instance, oldVersion); @@ -80,7 +83,7 @@ public void testSerializationWithTransportVersionNodeWeightsAddedToNodeBalanceSt // Serialization changes based on this version final var oldVersion = TransportVersionUtils.randomVersionBetween( random(), - TransportVersions.NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS, + NODE_WEIGHTS_ADDED_TO_NODE_BALANCE_STATS, TransportVersion.current() ); ClusterBalanceStats.NodeBalanceStats deserialized = copyInstance(instance, oldVersion); diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/TopNOperatorStatus.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/TopNOperatorStatus.java index 95a839671a70c..53f815b2c5368 100644 --- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/TopNOperatorStatus.java +++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/TopNOperatorStatus.java @@ -26,6 +26,9 @@ public class TopNOperatorStatus implements Operator.Status { "topn", TopNOperatorStatus::new ); + + private static final TransportVersion ESQL_TOPN_TIMINGS = TransportVersion.fromName("esql_topn_timings"); + private final long receiveNanos; private final long emitNanos; private final int occupiedRows; @@ -56,7 +59,7 @@ public TopNOperatorStatus( } TopNOperatorStatus(StreamInput in) throws IOException { - if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_TOPN_TIMINGS)) { + if (in.getTransportVersion().supports(ESQL_TOPN_TIMINGS)) { this.receiveNanos = in.readVLong(); this.emitNanos = in.readVLong(); } else { @@ -81,7 +84,7 @@ public TopNOperatorStatus( @Override public void writeTo(StreamOutput out) throws IOException { - if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_TOPN_TIMINGS)) { + if (out.getTransportVersion().supports(ESQL_TOPN_TIMINGS)) { out.writeVLong(receiveNanos); out.writeVLong(emitNanos); } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexOperator.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexOperator.java index 6f2f37119210e..641f3420bbd78 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexOperator.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexOperator.java @@ -7,7 +7,7 @@ package org.elasticsearch.xpack.esql.enrich; -import org.elasticsearch.TransportVersions; +import org.elasticsearch.TransportVersion; import org.elasticsearch.action.ActionListener; import org.elasticsearch.common.collect.Iterators; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; @@ -247,6 +247,10 @@ public static class Status extends AsyncOperator.Status { Status::new ); + private static final TransportVersion ESQL_LOOKUP_OPERATOR_EMITTED_ROWS = TransportVersion.fromName( + "esql_lookup_operator_emitted_rows" + ); + private final long totalRows; /** * Total number of pages emitted by this {@link Operator}. @@ -268,7 +272,7 @@ public static class Status extends AsyncOperator.Status { super(in); this.totalRows = in.readVLong(); this.emittedPages = in.readVLong(); - if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_OPERATOR_EMITTED_ROWS)) { + if (in.getTransportVersion().supports(ESQL_LOOKUP_OPERATOR_EMITTED_ROWS)) { this.emittedRows = in.readVLong(); } else { this.emittedRows = 0L; @@ -280,7 +284,7 @@ public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); out.writeVLong(totalRows); out.writeVLong(emittedPages); - if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_OPERATOR_EMITTED_ROWS)) { + if (out.getTransportVersion().supports(ESQL_LOOKUP_OPERATOR_EMITTED_ROWS)) { out.writeVLong(emittedRows); } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexService.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexService.java index 3eab54a7e0efc..4cfa7adaede81 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexService.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/LookupFromIndexService.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.esql.enrich; +import org.elasticsearch.TransportVersion; import org.elasticsearch.TransportVersions; import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver; import org.elasticsearch.cluster.project.ProjectResolver; @@ -146,6 +147,11 @@ public static class Request extends AbstractLookupService.Request { } protected static class TransportRequest extends AbstractLookupService.TransportRequest { + + private static final TransportVersion ESQL_LOOKUP_JOIN_ON_MANY_FIELDS = TransportVersion.fromName( + "esql_lookup_join_on_many_fields" + ); + private final List matchFields; // Right now we assume that the page contains the same number of blocks as matchFields and that the blocks are in the same order @@ -178,7 +184,7 @@ static TransportRequest readFrom(StreamInput in, BlockFactory blockFactory) thro } DataType inputDataType = null; - if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_JOIN_ON_MANY_FIELDS) == false) { + if (in.getTransportVersion().supports(ESQL_LOOKUP_JOIN_ON_MANY_FIELDS) == false) { inputDataType = DataType.fromTypeName(in.readString()); } @@ -189,7 +195,7 @@ static TransportRequest readFrom(StreamInput in, BlockFactory blockFactory) thro PlanStreamInput planIn = new PlanStreamInput(in, in.namedWriteableRegistry(), null); List extractFields = planIn.readNamedWriteableCollectionAsList(NamedExpression.class); List matchFields = null; - if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_JOIN_ON_MANY_FIELDS)) { + if (in.getTransportVersion().supports(ESQL_LOOKUP_JOIN_ON_MANY_FIELDS)) { matchFields = planIn.readCollectionAsList(MatchConfig::new); } else { String matchField = in.readString(); @@ -233,7 +239,7 @@ public void writeTo(StreamOutput out) throws IOException { } else if (indexPattern.equals(shardId.getIndexName()) == false) { throw new EsqlIllegalArgumentException("Aliases and index patterns are not allowed for LOOKUP JOIN [{}]", indexPattern); } - if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_JOIN_ON_MANY_FIELDS) == false) { + if (out.getTransportVersion().supports(ESQL_LOOKUP_JOIN_ON_MANY_FIELDS) == false) { // only write this for old versions // older versions only support a single match field if (matchFields.size() > 1) { @@ -244,7 +250,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeWriteable(inputPage); PlanStreamOutput planOut = new PlanStreamOutput(out, null); planOut.writeNamedWriteableCollection(extractFields); - if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_LOOKUP_JOIN_ON_MANY_FIELDS)) { + if (out.getTransportVersion().supports(ESQL_LOOKUP_JOIN_ON_MANY_FIELDS)) { // serialize all match fields for new versions planOut.writeCollection(matchFields, (o, matchConfig) -> matchConfig.writeTo(o)); } else { diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankBuilder.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankBuilder.java index 6e213c5906b23..eed06a577df05 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankBuilder.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankBuilder.java @@ -58,6 +58,8 @@ public class TextSimilarityRankBuilder extends RankBuilder { License.OperationMode.ENTERPRISE ); + private static final TransportVersion RERANK_SNIPPETS = TransportVersion.fromName("rerank_snippets"); + private final String inferenceId; private final String inferenceText; private final String field; @@ -96,7 +98,7 @@ public TextSimilarityRankBuilder(StreamInput in) throws IOException { } else { this.failuresAllowed = false; } - if (in.getTransportVersion().onOrAfter(TransportVersions.RERANK_SNIPPETS)) { + if (in.getTransportVersion().supports(RERANK_SNIPPETS)) { this.snippetConfig = in.readOptionalWriteable(SnippetConfig::new); } else { this.snippetConfig = null; @@ -124,7 +126,7 @@ public void doWriteTo(StreamOutput out) throws IOException { || out.getTransportVersion().onOrAfter(TransportVersions.RERANKER_FAILURES_ALLOWED)) { out.writeBoolean(failuresAllowed); } - if (out.getTransportVersion().onOrAfter(TransportVersions.RERANK_SNIPPETS)) { + if (out.getTransportVersion().supports(RERANK_SNIPPETS)) { out.writeOptionalWriteable(snippetConfig); } } diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/ai21/Ai21Service.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/ai21/Ai21Service.java index 364a19b3d5f40..438d31d8dd411 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/ai21/Ai21Service.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/ai21/Ai21Service.java @@ -9,7 +9,6 @@ import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.TransportVersion; -import org.elasticsearch.TransportVersions; import org.elasticsearch.action.ActionListener; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.ValidationException; @@ -76,6 +75,10 @@ public class Ai21Service extends SenderService { OpenAiChatCompletionResponseEntity::fromResponse ); + private static final TransportVersion ML_INFERENCE_AI21_COMPLETION_ADDED = TransportVersion.fromName( + "ml_inference_ai21_completion_added" + ); + public Ai21Service( HttpRequestSender.Factory factory, ServiceComponents serviceComponents, @@ -224,7 +227,7 @@ public Ai21Model parsePersistedConfig(String modelId, TaskType taskType, Map map, ConfigurationParseContext context) { ValidationException validationException = new ValidationException(); @@ -77,7 +80,7 @@ public String getWriteableName() { @Override public TransportVersion getMinimalSupportedVersion() { - return TransportVersions.ML_INFERENCE_AI21_COMPLETION_ADDED; + return ML_INFERENCE_AI21_COMPLETION_ADDED; } @Override