MCPcopy Create free account
hub / github.com/apache/kvrocks-controller / watchLeaderChange

Method watchLeaderChange

store/engine/raft/node.go:225–250  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

223}
224
225func (n *Node) watchLeaderChange() {
226 n.wg.Add(1)
227 go func() {
228 defer n.wg.Done()
229
230 ticker := time.NewTicker(time.Second)
231 defer ticker.Stop()
232 for {
233 select {
234 case <-n.shutdown:
235 return
236 case <-ticker.C:
237 lead := n.GetRaftLead()
238 if lead != n.leader {
239 n.leader = lead
240 select {
241 case <-n.shutdown:
242 return
243 case n.leaderChanged <- true:
244 }
245 n.logger.Info("Found leader changed", zap.Uint64("leader", lead))
246 }
247 }
248 }
249 }()
250}
251
252func (n *Node) runRaftMessages() error {
253 n.wg.Add(1)

Callers 1

runMethod · 0.95

Implementers 1

ClusterNodestore/cluster_node.go

Calls 3

GetRaftLeadMethod · 0.95
InfoMethod · 0.80
StopMethod · 0.45

Tested by

no test coverage detected