Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions docs/internal/Versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,25 +85,6 @@ usually after each new minor release, to collapse the transport versions
for the previous minor release. An example of such an operation can be found
[here](https://github.com/elastic/elasticsearch/pull/104937).

#### Tips

- We collapse versions only on the `main` branch.
- Use [TransportVersions.csv](../../server/src/main/resources/org/elasticsearch/TransportVersions.csv) as your guide.
- For each release version listed in that file with a corresponding `INITIAL_ELASTICSEARCH_` entry corresponding to that version,
- change the prefix to `V_`
- replace all intervening entries since the previous patch `V_` entry with the new `V_` entry
- look at all uses of the new `V_` entry and look for dead code that can be deleted

For example, if there's a version `1.2.3` in the CSV file,
and `TransportVersions.java` has an entry called `INITIAL_ELASTICSEARCH_1_2_3`,
then:
- rename it to `V_1_2_3`,
- replace any other intervening symbols between `V_1_2_2` and `V_1_2_3` with `V_1_2_3` itself, and
- look through all the uses of the new `V_1_2_3` symbol; if any contain dead code, simplify it.

When in doubt, you can always leave the code as-is.
This is an optional cleanup step that is never required for correctness.

### Minimum compatibility versions

The transport version used between two nodes is determined by the initial handshake
Expand Down
23 changes: 16 additions & 7 deletions server/src/main/java/org/elasticsearch/TransportVersions.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ static TransportVersion def(int id) {
public static final TransportVersion V_8_15_2 = def(8_702_0_03);
public static final TransportVersion V_8_16_0 = def(8_772_0_01);
public static final TransportVersion V_8_16_1 = def(8_772_0_04);
public static final TransportVersion V_8_16_5 = def(8_772_0_05);
public static final TransportVersion V_8_16_6 = def(8_772_0_06);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_16_5 = def(8_772_0_05);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_16_6 = def(8_772_0_06);
public static final TransportVersion V_8_17_0 = def(8_797_0_02);
public static final TransportVersion V_8_17_3 = def(8_797_0_03);
public static final TransportVersion V_8_17_4 = def(8_797_0_04);
public static final TransportVersion V_8_17_5 = def(8_797_0_05);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_17_3 = def(8_797_0_03);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_17_4 = def(8_797_0_04);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_17_5 = def(8_797_0_05);
public static final TransportVersion INDEXING_PRESSURE_THROTTLING_STATS = def(8_798_0_00);
public static final TransportVersion REINDEX_DATA_STREAMS = def(8_799_0_00);
public static final TransportVersion ESQL_REMOVE_NODE_LEVEL_PLAN = def(8_800_0_00);
Expand Down Expand Up @@ -135,7 +135,7 @@ static TransportVersion def(int id) {
public static final TransportVersion INFERENCE_REQUEST_ADAPTIVE_RATE_LIMITING = def(8_839_0_00);
public static final TransportVersion ML_INFERENCE_IBM_WATSONX_RERANK_ADDED = def(8_840_0_00);
public static final TransportVersion REMOVE_ALL_APPLICABLE_SELECTOR_BACKPORT_8_18 = def(8_840_0_01);
public static final TransportVersion V_8_18_0 = def(8_840_0_02);
public static final TransportVersion RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_18 = def(8_840_0_02);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_18_7 = def(8_840_0_09);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_19 = def(8_841_0_00);
public static final TransportVersion COHERE_BIT_EMBEDDING_TYPE_SUPPORT_ADDED_BACKPORT_8_X = def(8_841_0_01);
Expand Down Expand Up @@ -202,7 +202,16 @@ static TransportVersion def(int id) {
public static final TransportVersion ESQL_SPLIT_ON_BIG_VALUES_8_19 = def(8_841_0_63);
public static final TransportVersion ESQL_FIXED_INDEX_LIKE_8_19 = def(8_841_0_64);
public static final TransportVersion INITIAL_ELASTICSEARCH_8_19_4 = def(8_841_0_68);
public static final TransportVersion V_9_0_0 = def(9_000_0_09);
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0 = def(9_000_0_00);
public static final TransportVersion REMOVE_SNAPSHOT_FAILURES_90 = def(9_000_0_01);
public static final TransportVersion TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90 = def(9_000_0_02);
public static final TransportVersion REMOVE_DESIRED_NODE_VERSION_90 = def(9_000_0_03);
public static final TransportVersion ESQL_DRIVER_TASK_DESCRIPTION_90 = def(9_000_0_04);
public static final TransportVersion REMOVE_ALL_APPLICABLE_SELECTOR_9_0 = def(9_000_0_05);
public static final TransportVersion BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_90 = def(9_000_0_06);
public static final TransportVersion RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_90 = def(9_000_0_07);
public static final TransportVersion RE_REMOVE_MIN_COMPATIBLE_SHARD_NODE_90 = def(9_000_0_08);
public static final TransportVersion STORED_SCRIPT_CONTENT_LENGTH_90 = def(9_000_0_09);
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0_7 = def(9_000_0_16);
public static final TransportVersion COHERE_BIT_EMBEDDING_TYPE_SUPPORT_ADDED = def(9_001_0_00);
public static final TransportVersion REMOVE_SNAPSHOT_FAILURES = def(9_002_0_00);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public GetSnapshotsResponse(List<SnapshotInfo> snapshots, @Nullable String next,
public GetSnapshotsResponse(StreamInput in) throws IOException {
this.snapshots = in.readCollectionAsImmutableList(SnapshotInfo::readFrom);
if (in.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)
&& in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_SNAPSHOT_FAILURES_90) == false) {
// Deprecated `failures` field
in.readMap(StreamInput::readException);
}
Expand Down Expand Up @@ -85,7 +85,7 @@ public int remaining() {
public void writeTo(StreamOutput out) throws IOException {
out.writeCollection(snapshots);
if (out.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)
&& out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& out.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_SNAPSHOT_FAILURES_90) == false) {
// Deprecated `failures` field
out.writeMap(Map.of(), StreamOutput::writeException);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public class PutStoredScriptRequest extends AcknowledgedRequest<PutStoredScriptR
public PutStoredScriptRequest(StreamInput in) throws IOException {
super(in);
id = in.readOptionalString();
if (in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
if (in.getTransportVersion().isPatchFrom(TransportVersions.STORED_SCRIPT_CONTENT_LENGTH_90)
|| in.getTransportVersion().onOrAfter(TransportVersions.STORED_SCRIPT_CONTENT_LENGTH)) {
contentLength = in.readVInt();
} else {
Expand Down Expand Up @@ -106,7 +106,7 @@ public StoredScriptSource source() {
public void writeTo(StreamOutput out) throws IOException {
super.writeTo(out);
out.writeOptionalString(id);
if (out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
if (out.getTransportVersion().isPatchFrom(TransportVersions.STORED_SCRIPT_CONTENT_LENGTH_90)
|| out.getTransportVersion().onOrAfter(TransportVersions.STORED_SCRIPT_CONTENT_LENGTH)) {
out.writeVInt(contentLength);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ public SearchRequest(StreamInput in) throws IOException {
finalReduce = true;
}
ccsMinimizeRoundtrips = in.readBoolean();
if ((in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false
if ((in.getTransportVersion().isPatchFrom(TransportVersions.RE_REMOVE_MIN_COMPATIBLE_SHARD_NODE_90) == false
&& in.getTransportVersion().before(TransportVersions.RE_REMOVE_MIN_COMPATIBLE_SHARD_NODE)) && in.readBoolean()) {
Version.readVersion(in); // and drop on the floor
}
Expand Down Expand Up @@ -299,7 +299,7 @@ public void writeTo(StreamOutput out, boolean skipIndices) throws IOException {
out.writeBoolean(finalReduce);
}
out.writeBoolean(ccsMinimizeRoundtrips);
if ((out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false
if ((out.getTransportVersion().isPatchFrom(TransportVersions.RE_REMOVE_MIN_COMPATIBLE_SHARD_NODE_90) == false
&& out.getTransportVersion().before(TransportVersions.RE_REMOVE_MIN_COMPATIBLE_SHARD_NODE))) {
out.writeBoolean(false);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public static IndexComponentSelector getByKeyOrThrow(@Nullable String key) {
public static IndexComponentSelector read(StreamInput in) throws IOException {
byte id = in.readByte();
if (in.getTransportVersion().onOrAfter(TransportVersions.REMOVE_ALL_APPLICABLE_SELECTOR)
|| in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_ALL_APPLICABLE_SELECTOR_9_0)
|| in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_ALL_APPLICABLE_SELECTOR_BACKPORT_8_18)
|| in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_ALL_APPLICABLE_SELECTOR_BACKPORT_8_19)) {
return getById(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ public static DesiredNode readFrom(StreamInput in) throws IOException {
final var memory = ByteSizeValue.readFrom(in);
final var storage = ByteSizeValue.readFrom(in);
if (in.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)
&& in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_DESIRED_NODE_VERSION_90) == false) {
in.readOptionalString();
}
return new DesiredNode(settings, processors, processorsRange, memory, storage);
Expand All @@ -182,7 +182,7 @@ public void writeTo(StreamOutput out) throws IOException {
memory.writeTo(out);
storage.writeTo(out);
if (out.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)
&& out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& out.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_DESIRED_NODE_VERSION_90) == false) {
out.writeOptionalString(null);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@

import static org.elasticsearch.TransportVersions.BYTE_SIZE_VALUE_ALWAYS_USES_BYTES;
import static org.elasticsearch.TransportVersions.BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1;
import static org.elasticsearch.TransportVersions.BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_90;
import static org.elasticsearch.TransportVersions.REVERT_BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1;
import static org.elasticsearch.TransportVersions.V_9_0_0;
import static org.elasticsearch.common.unit.ByteSizeUnit.BYTES;
import static org.elasticsearch.common.unit.ByteSizeUnit.GB;
import static org.elasticsearch.common.unit.ByteSizeUnit.KB;
Expand Down Expand Up @@ -134,7 +134,7 @@ public void writeTo(StreamOutput out) throws IOException {

private static boolean alwaysUseBytes(TransportVersion tv) {
return tv.onOrAfter(BYTE_SIZE_VALUE_ALWAYS_USES_BYTES)
|| tv.isPatchFrom(V_9_0_0)
|| tv.isPatchFrom(BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_90)
|| tv.between(BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1, REVERT_BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public TransportStats(StreamInput in) throws IOException {
txCount = in.readVLong();
txSize = in.readVLong();
if (in.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)
&& in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& in.getTransportVersion().isPatchFrom(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90) == false) {
in.readBoolean();
}
inboundHandlingTimeBucketFrequencies = new long[HandlingTimeTracker.BUCKET_COUNT];
Expand Down Expand Up @@ -100,7 +100,7 @@ public void writeTo(StreamOutput out) throws IOException {
assert inboundHandlingTimeBucketFrequencies.length == HandlingTimeTracker.BUCKET_COUNT;
assert outboundHandlingTimeBucketFrequencies.length == HandlingTimeTracker.BUCKET_COUNT;
if (out.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)
&& out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0) == false) {
&& out.getTransportVersion().isPatchFrom(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90) == false) {
out.writeBoolean(true);
}
for (long handlingTimeBucketFrequency : inboundHandlingTimeBucketFrequencies) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.TransportVersion;
import org.elasticsearch.TransportVersions;
import org.elasticsearch.common.io.stream.BytesStreamOutput;
import org.elasticsearch.common.io.stream.Writeable.Reader;
import org.elasticsearch.test.AbstractWireSerializingTestCase;
Expand All @@ -23,6 +22,8 @@
import java.util.function.Function;

import static org.elasticsearch.TransportVersions.BYTE_SIZE_VALUE_ALWAYS_USES_BYTES;
import static org.elasticsearch.TransportVersions.BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_90;
import static org.elasticsearch.TransportVersions.INITIAL_ELASTICSEARCH_9_0;
import static org.elasticsearch.TransportVersions.V_8_16_0;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
Expand Down Expand Up @@ -522,7 +523,7 @@ protected void assertEqualInstances(ByteSizeValue expectedInstance, ByteSizeValu

public void testBWCTransportFormat() throws IOException {
var tenMegs = ByteSizeValue.ofMb(10);
for (var tv : List.of(V_8_16_0)) {
for (var tv : List.of(V_8_16_0, INITIAL_ELASTICSEARCH_9_0)) {
try (BytesStreamOutput expected = new BytesStreamOutput(); BytesStreamOutput actual = new BytesStreamOutput()) {
expected.writeZLong(10);
ByteSizeUnit.MB.writeTo(expected);
Expand All @@ -538,7 +539,7 @@ public void testBWCTransportFormat() throws IOException {
}

public void testTransportRoundTripsWithTwoDigitFractions() throws IOException {
for (var tv : List.of(TransportVersion.current(), BYTE_SIZE_VALUE_ALWAYS_USES_BYTES, TransportVersions.V_9_0_0)) {
for (var tv : List.of(TransportVersion.current(), BYTE_SIZE_VALUE_ALWAYS_USES_BYTES, BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_90)) {
for (var desiredUnit : ByteSizeUnit.values()) {
if (desiredUnit == ByteSizeUnit.BYTES) {
// Can't have a fraction of a byte!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ public RetryActionRequest(StreamInput in) throws IOException {
this.indices = in.readStringArray();
this.indicesOptions = IndicesOptions.readIndicesOptions(in);
if (in.getTransportVersion().onOrAfter(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR)
|| in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| in.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_90)
|| in.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_19)
|| in.getTransportVersion().isPatchFrom(TransportVersions.V_8_18_0)) {
|| in.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_18)) {
this.requireError = in.readBoolean();
}
}
Expand Down Expand Up @@ -82,9 +82,9 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeStringArray(indices);
indicesOptions.writeIndicesOptions(out);
if (out.getTransportVersion().onOrAfter(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR)
|| out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| out.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_90)
|| out.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_19)
|| out.getTransportVersion().isPatchFrom(TransportVersions.V_8_18_0)) {
|| out.getTransportVersion().isPatchFrom(TransportVersions.RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_18)) {
out.writeBoolean(requireError);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public record DriverProfile(
public static DriverProfile readFrom(StreamInput in) throws IOException {
return new DriverProfile(
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
|| in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_8_19) ? in.readString() : "",
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
Expand All @@ -69,7 +69,7 @@ public static DriverProfile readFrom(StreamInput in) throws IOException {
@Override
public void writeTo(StreamOutput out) throws IOException {
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
|| out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_8_19)) {
out.writeString(description);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public static DriverStatus readFrom(StreamInput in) throws IOException {
return new DriverStatus(
in.readString(),
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
|| in.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_8_19) ? in.readString() : "",
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_NODE_DESCRIPTION) ? in.readString() : "",
Expand All @@ -84,7 +84,7 @@ public static DriverStatus readFrom(StreamInput in) throws IOException {
public void writeTo(StreamOutput out) throws IOException {
out.writeString(sessionId);
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
|| out.getTransportVersion().isPatchFrom(TransportVersions.V_9_0_0)
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_8_19)) {
out.writeString(description);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public void testSerializationBeforeExtensionAttributes() throws Exception {
final TransportVersion version = randomBoolean()
? TransportVersionUtils.randomVersionBetween(
random(),
TransportVersions.V_9_0_0,
TransportVersions.STORED_SCRIPT_CONTENT_LENGTH_90,
TransportVersionUtils.getPreviousVersion(TransportVersions.IDP_CUSTOM_SAML_ATTRIBUTES_ALLOW_LIST)
)
: TransportVersionUtils.randomVersionBetween(
Expand Down
Loading