Skip to content
This repository was archived by the owner on Aug 23, 2023. It is now read-only.

Commit 090f7c3

Browse files
author
woodsaj
committed
drop node updates that are older then info we already have
1 parent 0847450 commit 090f7c3

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

cluster/manager.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,10 @@ func (c *MemberlistManager) NotifyJoin(node *memberlist.Node) {
226226
if member.Name == c.nodeName {
227227
member.local = true
228228
}
229-
c.members[node.Name] = member
229+
existing, ok := c.members[node.Name]
230+
if !ok || member.Updated.After(existing.Updated) {
231+
c.members[node.Name] = member
232+
}
230233
c.clusterStats()
231234
}
232235

@@ -265,8 +268,11 @@ func (c *MemberlistManager) NotifyUpdate(node *memberlist.Node) {
265268
if member.Name == c.nodeName {
266269
member.local = true
267270
}
268-
c.members[node.Name] = member
269-
log.Info("CLU manager: HTTPNode %s at %s has been updated - %s", node.Name, node.Addr.String(), node.Meta)
271+
existing, ok := c.members[node.Name]
272+
if !ok || member.Updated.After(existing.Updated) {
273+
c.members[node.Name] = member
274+
log.Info("CLU manager: HTTPNode %s at %s has been updated - %s", node.Name, node.Addr.String(), node.Meta)
275+
}
270276
c.clusterStats()
271277
}
272278

@@ -348,6 +354,7 @@ func (c *MemberlistManager) SetState(state NodeState) {
348354
node := c.members[c.nodeName]
349355
node.State = state
350356
node.Updated = time.Now()
357+
node.StateChange = time.Now()
351358
c.members[c.nodeName] = node
352359
c.Unlock()
353360
nodeReady.Set(state == NodeReady)

0 commit comments

Comments
 (0)