diff --git a/server/src/main/java/org/elasticsearch/cluster/ClusterState.java b/server/src/main/java/org/elasticsearch/cluster/ClusterState.java index 6b222fb8f5bdc..453eb4bb9eb9a 100644 --- a/server/src/main/java/org/elasticsearch/cluster/ClusterState.java +++ b/server/src/main/java/org/elasticsearch/cluster/ClusterState.java @@ -322,6 +322,28 @@ public boolean hasMixedSystemIndexVersions() { .anyMatch(e -> e.systemIndexMappingsVersion().equals(minVersions.systemIndexMappingsVersion()) == false); } + /** + * @return the minimum {@link TransportVersion} that will be used for all future intra-cluster node-to-node communications. This value + * only ever increases, so if {@code v.onOrAfter(cs.getMinTransportVersion())} is true once then it will remain true in the + * future. + *
+ * There are some subtle exceptions: + *
+ * Note also that node-to-node communications which are not intra-cluster (i.e. they are not between nodes in the same cluster) + * may sometimes use an earlier {@link TransportVersion} than this value. This includes remote-cluster communication, and communication + * with nodes that are just starting up or otherwise are attempting to join this cluster. + */ public TransportVersion getMinTransportVersion() { return this.minVersions.transportVersion(); }