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

Commit ed4e98a

Browse files
woodsajDieterbe
woodsaj
authored andcommitted
drop node updates that are older then info we already have
1 parent 69e1dd3 commit ed4e98a

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
@@ -231,7 +231,10 @@ func (c *MemberlistManager) NotifyJoin(node *memberlist.Node) {
231231
if member.Name == c.nodeName {
232232
member.local = true
233233
}
234-
c.members[node.Name] = member
234+
existing, ok := c.members[node.Name]
235+
if !ok || member.Updated.After(existing.Updated) {
236+
c.members[node.Name] = member
237+
}
235238
c.clusterStats()
236239
}
237240

@@ -270,8 +273,11 @@ func (c *MemberlistManager) NotifyUpdate(node *memberlist.Node) {
270273
if member.Name == c.nodeName {
271274
member.local = true
272275
}
273-
c.members[node.Name] = member
274-
log.Infof("CLU manager: HTTPNode %s at %s has been updated - %s", node.Name, node.Addr.String(), node.Meta)
276+
existing, ok := c.members[node.Name]
277+
if !ok || member.Updated.After(existing.Updated) {
278+
c.members[node.Name] = member
279+
log.Infof("CLU manager: HTTPNode %s at %s has been updated - %s", node.Name, node.Addr.String(), node.Meta)
280+
}
275281
c.clusterStats()
276282
}
277283

@@ -353,6 +359,7 @@ func (c *MemberlistManager) SetState(state NodeState) {
353359
node := c.members[c.nodeName]
354360
node.State = state
355361
node.Updated = time.Now()
362+
node.StateChange = time.Now()
356363
c.members[c.nodeName] = node
357364
c.Unlock()
358365
nodeReady.Set(state == NodeReady)

0 commit comments

Comments
 (0)