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

Method deleteBeacons

kv/memberlist/propagation_tracker.go:354–378  ·  view source on GitHub ↗

deleteBeacons marks the specified beacons as tombstones by setting their DeletedAt timestamp.

(ctx context.Context, beaconIDs []uint64)

Source from the content-addressed store, hash-verified

352
353// deleteBeacons marks the specified beacons as tombstones by setting their DeletedAt timestamp.
354func (t *PropagationDelayTracker) deleteBeacons(ctx context.Context, beaconIDs []uint64) {
355 err := t.kv.CAS(ctx, propagationDelayTrackerKey, t.codec, func(in interface{}) (out interface{}, retry bool, err error) {
356 desc := GetOrCreatePropagationDelayTrackerDesc(in)
357 now := time.Now()
358
359 changed := false
360 for _, beaconID := range beaconIDs {
361 beacon, exists := desc.Beacons[beaconID]
362 if exists && beacon.DeletedAt == 0 {
363 beacon.DeletedAt = now.UnixMilli()
364 desc.Beacons[beaconID] = beacon
365 changed = true
366 }
367 }
368
369 if !changed {
370 return nil, false, nil
371 }
372 return desc, true, nil
373 })
374
375 if err != nil {
376 level.Warn(t.logger).Log("msg", "failed to mark beacons as deleted", "err", err)
377 }
378}

Callers 1

onBeaconIntervalMethod · 0.95

Calls 3

CASMethod · 0.65
LogMethod · 0.45

Tested by

no test coverage detected