From edec229e1019c823844d5933f06578cfc7ddc74f Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Tue, 6 Mar 2018 01:57:06 -0800 Subject: [PATCH] etcdserver: make "advanceTicks" method Signed-off-by: Gyuho Lee --- etcdserver/raft.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/etcdserver/raft.go b/etcdserver/raft.go index 1fa085905..fe4853314 100644 --- a/etcdserver/raft.go +++ b/etcdserver/raft.go @@ -370,13 +370,13 @@ func (r *raftNode) resumeSending() { p.Resume() } -// advanceTicksForElection advances ticks to the node for fast election. -// This reduces the time to wait for first leader election if bootstrapping the whole -// cluster, while leaving at least 1 heartbeat for possible existing leader -// to contact it. -func advanceTicksForElection(n raft.Node, electionTicks int) { - for i := 0; i < electionTicks-1; i++ { - n.Tick() +// advanceTicks advances ticks of Raft node. +// This can be used for fast-forwarding election +// ticks in multi data-center deployments, thus +// speeding up election process. +func (r *raftNode) advanceTicks(ticks int) { + for i := 0; i < ticks; i++ { + r.Tick() } } @@ -418,7 +418,6 @@ func startNode(cfg ServerConfig, cl *membership.RaftCluster, ids []types.ID) (id raftStatusMu.Lock() raftStatus = n.Status raftStatusMu.Unlock() - advanceTicksForElection(n, c.ElectionTick) return id, n, s, w } @@ -453,7 +452,6 @@ func restartNode(cfg ServerConfig, snapshot *raftpb.Snapshot) (types.ID, *member raftStatusMu.Lock() raftStatus = n.Status raftStatusMu.Unlock() - advanceTicksForElection(n, c.ElectionTick) return id, cl, n, s, w }