MCPcopy
hub / github.com/grafana/dskit / RemoveTombstones

Method RemoveTombstones

ring/partition_ring_model.go:459–483  ·  view source on GitHub ↗

RemoveTombstones implements memberlist.Mergeable.

(limit time.Time)

Source from the content-addressed store, hash-verified

457
458// RemoveTombstones implements memberlist.Mergeable.
459func (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.
486func (m *PartitionRingDesc) Clone() memberlist.Mergeable {

Calls 1

BeforeMethod · 0.65

Tested by 1