Skip to content

Commit

Permalink
etcd: set "initial-selection-tick-advance=false"
Browse files Browse the repository at this point in the history
    By default, etcd --initial-election-tick-advance=true, then local member fast-forwards election ticks to speed up "initial" leader election trigger.
    This benefits the case of larger election ticks. For instance, cross datacenter deployment may require longer election timeout of 10-second. If true, local node does not need wait up to 10-second. Instead, forwards its election ticks to 8-second, and have only 2-second left before leader election.
    Major assumptions are that: cluster has no active leader thus advancing ticks enables faster leader election. Or cluster already has an established leader, and rejoining follower is likely to receive heartbeats from the leader after tick advance and before election timeout.
    However, when network from leader to rejoining follower is congested, and the follower does not receive leader heartbeat within left election ticks, disruptive election has to happen thus affecting cluster availabilities.
    Disabling this would slow down initial bootstrap process for cross datacenter deployments.

We don't care too much about the delay in cluster bootstrap, but we do care about the availability of etcd clusters.
With "initial-election-tick-advance" set to false, a rejoining node has more chance to receive leader heartbeats before disrupting the cluster.

etcd-io/etcd#9333
  • Loading branch information
vitabaks committed Nov 16, 2020
1 parent 3952a49 commit 0f651c7
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions roles/etcd/templates/etcd.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_DATA_DIR="{{ etcd_data_dir }}"
ETCD_ELECTION_TIMEOUT="5000"
ETCD_HEARTBEAT_INTERVAL="1000"
ETCD_INITIAL_ELECTION_TICK_ADVANCE="false"
ETCD_ENABLE_V2="true"

0 comments on commit 0f651c7

Please sign in to comment.