RemoveTombstones implements memberlist.Mergeable.
(limit time.Time)
| 457 | |
| 458 | // RemoveTombstones implements memberlist.Mergeable. |
| 459 | func (m *PartitionRingDesc) RemoveTombstones(limit time.Time) (total, removed int) { |
| 460 | for pid, part := range m.Partitions { |
| 461 | if part.State == PartitionDeleted { |
| 462 | if limit.IsZero() || time.Unix(part.StateTimestamp, 0).Before(limit) { |
| 463 | delete(m.Partitions, pid) |
| 464 | removed++ |
| 465 | } else { |
| 466 | total++ |
| 467 | } |
| 468 | } |
| 469 | } |
| 470 | |
| 471 | for n, owner := range m.Owners { |
| 472 | if owner.State == OwnerDeleted { |
| 473 | if limit.IsZero() || time.Unix(owner.UpdatedTimestamp, 0).Before(limit) { |
| 474 | delete(m.Owners, n) |
| 475 | removed++ |
| 476 | } else { |
| 477 | total++ |
| 478 | } |
| 479 | } |
| 480 | } |
| 481 | |
| 482 | return |
| 483 | } |
| 484 | |
| 485 | // Clone implements memberlist.Mergeable. |
| 486 | func (m *PartitionRingDesc) Clone() memberlist.Mergeable { |