Skip to content

Commit 7bb6fa2

Browse files
committed
Reword docs
* Generalise the note on the node filters page to talk about the `voting_only` role, since it's not clear on this page what "designating" means. * Contrast `default-dist` to `oss-dist`, because in isolation the phrase "default distribution" is kinda mysterious to the general public. * Qualify statement about "any master eligible node may be elected" * Add excuse for the confusing terminology * Shrink explanation about HA clusters, because it involved concepts like "voting powers" and "capability to act as master" that aren't really defined. * Remove suggestion to use a data node as a voting-only node: although this might work in many cases, I think if we specifically mention it here we will see too many clusters with overloaded data nodes that can't reasonably be a master. I think this is best left implicit.
1 parent 28efcf0 commit 7bb6fa2

File tree

2 files changed

+36
-29
lines changed

2 files changed

+36
-29
lines changed

docs/reference/cluster.asciidoc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ means that filters such as `master:false` which remove nodes from the chosen
4848
subset are only useful if they come after some other filters. When used on its
4949
own, `master:false` selects no nodes.
5050

51-
NOTE: Designating nodes as `voting_only` and using `voting_only` in node
52-
filters requires the default distribution of Elasticsearch.
51+
NOTE: The `voting_only` role requires the {default-dist} of Elasticsearch and
52+
is not supported in the {oss-dist}.
5353

5454
Here are some examples of the use of node filters with the
5555
<<cluster-nodes-info,Nodes Info>> APIs.
@@ -74,6 +74,7 @@ GET /_nodes/10.0.0.*
7474
GET /_nodes/_all,master:false
7575
GET /_nodes/data:true,ingest:true
7676
GET /_nodes/coordinating_only:true
77+
GET /_nodes/master:true,voting_only:false
7778
# Select nodes by custom attribute (e.g. with something like `node.attr.rack: 2` in the configuration file)
7879
GET /_nodes/rack:2
7980
GET /_nodes/ra*:2

docs/reference/modules/node.asciidoc

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ creating or deleting an index, tracking which nodes are part of the cluster,
8484
and deciding which shards to allocate to which nodes. It is important for
8585
cluster health to have a stable master node.
8686

87-
Any master-eligible node (all nodes by default) may be elected to become the
88-
master node by the <<modules-discovery,master election process>>.
87+
Any master-eligible node that is not a <<voting-only-node,voting-only node>> may
88+
be elected to become the master node by the <<modules-discovery,master election
89+
process>>.
8990

9091
IMPORTANT: Master nodes must have access to the `data/` directory (just like
9192
`data` nodes) as this is where the cluster state is persisted between node restarts.
@@ -138,36 +139,41 @@ cluster.remote.connect: false <4>
138139
[[voting-only-node]]
139140
==== Voting-only master-eligible node
140141

141-
A voting-only master-eligible node is a node that can participate in master
142-
elections but will not act as a master in the cluster. In particular, a
143-
voting-only node can help elect another master-eligible node as master, and
144-
can serve as a tiebreaker in elections. To mark a master-eligible node as
145-
voting-only, set:
142+
A voting-only master-eligible node is a node that participates in
143+
<<modules-discovery,master elections>> but which will not act as the cluster's
144+
elected master node. In particular, a voting-only node can serve as a tiebreaker
145+
in elections.
146+
147+
It may seem confusing to use the term "master-eligible" to describe a
148+
voting-only node since such a node is not actually eligible to become the master
149+
at all. This terminology is an unfortunate consequence of history:
150+
master-eligible nodes are those nodes that participate in elections and perform
151+
certain tasks during cluster state publications, and voting-only nodes have the
152+
same responsibilities even if they can never become the elected master.
153+
154+
To configure a master-eligible node as a voting-only node, set the following
155+
setting:
146156

147157
[source,yaml]
148158
-------------------
149159
node.voting_only: true <1>
150160
-------------------
151-
<1> The `node.voting_only` role is disabled by default.
152-
153-
IMPORTANT: If you use the {oss-dist}, do not set `node.voting_only`. Otherwise,
154-
the node fails to start. Also note that only master-eligible nodes can be
155-
marked as voting-only.
156-
157-
High availability (HA) clusters require at least three master-eligible nodes,
158-
so that if one of the three nodes is down, then the remaining two can still
159-
elect a master amongst them-selves. This only requires one of the two remaining
160-
nodes to have the capability to act as master, but both need to have voting
161-
powers. This means that one of the three master-eligible nodes can be made as
162-
voting-only. If this voting-only node is a dedicated master, a machine with
163-
a less powerful CPU and a smaller heap-size can be chosen for this node.
164-
Alternatively, a voting-only non-dedicated master node can play the role of the
165-
third master-eligible node, which allows running an HA cluster with only two
166-
dedicated master nodes.
167-
168-
As any master-eligible node, voting-only nodes should have fast disks and a
169-
reliable low-latency connection to the other nodes in the cluster, as they
170-
are on the critical path for
161+
<1> The default for `node.voting_only` is `false`.
162+
163+
IMPORTANT: The `voting_only` role requires the {default-dist} of Elasticsearch
164+
and is not supported in the {oss-dist}. If you use the {oss-dist} and set
165+
`node.voting_only` then the node will fail to start. Also note that only
166+
master-eligible nodes can be marked as voting-only.
167+
168+
High availability (HA) clusters require at least three master-eligible nodes, at
169+
least two of which are not voting-only nodes. Such a cluster will be able to
170+
elect a master node even if one of the nodes fails.
171+
172+
Since voting-only nodes never act as the cluster's elected master, they may
173+
require require less heap and a less powerful CPU than the true master nodes.
174+
However all master-eligible nodes, including voting-only nodes, require
175+
reasonably fast persistent storage and a reliable and low-latency network
176+
connection to the rest of the cluster, since they are on the critical path for
171177
<<cluster-state-publishing,publishing cluster state updates>>.
172178

173179
[float]

0 commit comments

Comments
 (0)