OpenSearch/docs/reference
Boaz Leskes 7488877d1a Validate a joining node's version with version of existing cluster nodes (#25808)
When a node tries to join a cluster, it goes through a validation step to make sure the node is compatible with the cluster. Currently we validation that the node can read the cluster state and that it is compatible with the indexes of the cluster. This PR adds validation that the joining node's version is compatible with the versions of existing nodes. Concretely we check that:

1) The node's min compatible version is higher or equal to any node in the cluster (this prevents a too-new node from joining)
2) The node's version is higher or equal to the min compat version of all cluster nodes (this prevents a too old join where, for example, the master is on 5.6, there's another 6.0 node in the cluster and a 5.4 node tries to join).
3) The node's major version is at least as higher as the lowest node in the cluster. This is important as we use the minimum version in the cluster to stop executing bwc code for operations that require multiple nodes. If the nodes are already operating in "new cluster mode", we should prevent nodes from the previous major to join (even if they are wire level compatible). This does mean that if you have a very unlucky partition during the upgrade which partitions all old nodes which are also a minority / data nodes only, the may not be able to re-join the cluster. We feel this edge case risk is well worth the simplification it brings to BWC layers only going one way. This restriction only holds if the cluster state has been recovered (i.e., the cluster has properly formed).

 Also, the node join validation can now selectively fail specific nodes (previously the entire batch was failed). This is an important preparation for a follow up PR where we plan to have a rejected joining node die with dignity.
2017-07-20 20:11:29 +02:00
..
aggregations Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
analysis Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
cat Remove usage of multi-types from the docs and added a page explaining type removal (#25543) 2017-07-05 12:30:19 +02:00
cluster Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
docs Remove deprecated created and found from index, delete and bulk (#25516) 2017-07-07 13:58:46 -04:00
how-to Broke recipes into separate pages 2017-07-17 18:21:39 +02:00
images Update MSI installer images (#25414) 2017-06-28 09:04:23 +10:00
index-modules Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
indices Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
ingest Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
mapping Update removal_of_types.asciidoc 2017-07-20 19:18:51 +02:00
migration remove lang url parameter from stored script requests (#25779) 2017-07-20 08:51:08 -07:00
modules Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
query-dsl Require a field when a `seed` is provided to the `random_score` function. (#25594) 2017-07-19 14:11:15 +02:00
release-notes Added release notes for 6.0.0-alpha2 2017-06-06 11:52:18 +02:00
search Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
setup Validate a joining node's version with version of existing cluster nodes (#25808) 2017-07-20 20:11:29 +02:00
testing Docs: Replace deprecated pluginList with Arrays.asList (#24270) 2017-04-24 13:30:37 +02:00
aggregations.asciidoc Update aggregation.asciidoc (#24042) 2017-04-11 09:02:38 -04:00
analysis.asciidoc Add the ability to set an analyzer on keyword fields. (#21919) 2016-12-30 09:36:10 +01:00
api-conventions.asciidoc Remove (deprecated) support for '+' in index expressions (#25274) 2017-06-19 15:19:17 +02:00
cat.asciidoc [DOCS] Fixed various typos in the 'cat APIs' section (#23216) 2017-02-16 20:41:42 +01:00
cluster.asciidoc [docs] include two cluster doc pages missing from index (#25180) 2017-06-12 12:33:56 -07:00
docs.asciidoc Inclusion of link to Multi Delete (#22619) 2017-01-16 12:58:59 +01:00
getting-started.asciidoc [DOCS] Changes xrefs to cross doc links to enable building GS "mini-docs" 2017-07-18 13:52:38 -07:00
glossary.asciidoc Remove usage of multi-types from the docs and added a page explaining type removal (#25543) 2017-07-05 12:30:19 +02:00
gs-index.asciidoc [DOCS] Adding index file for GS "mini book". 2017-07-18 13:44:08 -07:00
how-to.asciidoc Correct grammar in list in how-to docs 2017-01-17 20:57:22 -05:00
index-modules.asciidoc Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
index-shared1.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index-shared2.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index-shared3.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index.asciidoc Include shared/attributes.asciidoc from docs master 2017-07-03 18:17:34 +02:00
indices.asciidoc Remove shadow replicas 2017-04-11 11:26:26 -06:00
ingest.asciidoc Renamed all AUTOSENSE snippets to CONSOLE (#18210) 2016-05-09 15:42:23 +02:00
mapping.asciidoc [DOCS] Explain mapping explosion (#25654) 2017-07-14 09:47:41 +02:00
modules.asciidoc Docs: Cross-cluster search doc wasn't being included 2017-01-18 10:02:51 +01:00
query-dsl.asciidoc Fixed broken xrefs to query-dsl-not-query, which has been removed. 2015-10-20 13:01:37 -07:00
redirects.asciidoc Mark filtered query example as not to be used (#25661) 2017-07-14 11:45:21 +02:00
release-notes.asciidoc Added release notes for 6.0.0-alpha2 2017-06-06 11:52:18 +02:00
search.asciidoc Removed field-stats docs 2017-07-11 15:15:25 +02:00
setup.asciidoc Remove implicit 32-bit support 2017-06-28 08:24:33 -04:00
testing.asciidoc [DOCS] Test framework documentation 2013-12-02 18:01:45 +01:00