From 0e66a949807d25770278765d6060a74e008e4155 Mon Sep 17 00:00:00 2001 From: Anshul Pundir Date: Thu, 22 Mar 2018 15:04:10 -0700 Subject: [PATCH] Increase raft ElectionTick to 10xHeartbeatTick Signed-off-by: Anshul Pundir (cherry picked from commit 6abee2008b314a65553202b15d9a333d171e3433) Signed-off-by: Sebastiaan van Stijn --- components/engine/daemon/cluster/noderunner.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/components/engine/daemon/cluster/noderunner.go b/components/engine/daemon/cluster/noderunner.go index f832aca145..8fd7ca6aed 100644 --- a/components/engine/daemon/cluster/noderunner.go +++ b/components/engine/daemon/cluster/noderunner.go @@ -122,10 +122,13 @@ func (n *nodeRunner) start(conf nodeStartConfig) error { JoinToken: conf.joinToken, Executor: container.NewExecutor(n.cluster.config.Backend, n.cluster.config.PluginBackend), HeartbeatTick: 1, - ElectionTick: 3, - UnlockKey: conf.lockKey, - AutoLockManagers: conf.autolock, - PluginGetter: n.cluster.config.Backend.PluginGetter(), + // Recommended value in etcd/raft is 10 x (HeartbeatTick). + // Lower values were seen to have caused instability because of + // frequent leader elections when running on flakey networks. + ElectionTick: 10, + UnlockKey: conf.lockKey, + AutoLockManagers: conf.autolock, + PluginGetter: n.cluster.config.Backend.PluginGetter(), } if conf.availability != "" { avail, ok := swarmapi.NodeSpec_Availability_value[strings.ToUpper(string(conf.availability))]