RemoveTombstones removes LEFT ingesters older than given time limit. If time limit is zero, remove all LEFT ingesters.
(limit time.Time)
| 455 | |
| 456 | // RemoveTombstones removes LEFT ingesters older than given time limit. If time limit is zero, remove all LEFT ingesters. |
| 457 | func (d *Desc) RemoveTombstones(limit time.Time) (total, removed int) { |
| 458 | for n, ing := range d.Ingesters { |
| 459 | if ing.State == LEFT { |
| 460 | if limit.IsZero() || time.Unix(ing.Timestamp, 0).Before(limit) { |
| 461 | // remove it |
| 462 | delete(d.Ingesters, n) |
| 463 | removed++ |
| 464 | } else { |
| 465 | total++ |
| 466 | } |
| 467 | } |
| 468 | } |
| 469 | return |
| 470 | } |
| 471 | |
| 472 | // Clone returns a deep copy of the ring state. |
| 473 | func (d *Desc) Clone() memberlist.Mergeable { |