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

Method Delete

kv/memberlist/memberlist_client.go:1255–1284  ·  view source on GitHub ↗
(key string)

Source from the content-addressed store, hash-verified

1253}
1254
1255func (m *KV) Delete(key string) error {
1256 m.storeMu.Lock()
1257 val, ok := m.store[key]
1258 m.storeMu.Unlock()
1259
1260 if !ok || val.Deleted {
1261 return nil
1262 }
1263
1264 c := m.GetCodec(val.CodecID)
1265 if c == nil {
1266 level.Error(m.logger).Log("msg", "could not mark key for deletion due to an invalid codec", "key", key, "codec", val.CodecID)
1267 return fmt.Errorf("invalid codec: %s", val.CodecID)
1268 }
1269
1270 change, newver, deleted, updated, err := m.mergeValueForKey(key, val.value, false, 0, val.CodecID, true, time.Now())
1271 if err != nil {
1272 level.Error(m.logger).Log("msg", "could not mark key for deletion due to error while trying to merge new value", "key", key, "err", err)
1273 return err
1274 }
1275
1276 if newver > 0 {
1277 m.notifyWatchers(key)
1278 m.broadcastNewValue(key, change, newver, c, false, deleted, updated)
1279 }
1280
1281 level.Info(m.logger).Log("msg", "successfully marked key for deletion", "key", key)
1282
1283 return nil
1284}
1285
1286// CAS implements Compare-And-Set/Swap operation.
1287//

Callers

nothing calls this directly

Calls 7

GetCodecMethod · 0.95
mergeValueForKeyMethod · 0.95
notifyWatchersMethod · 0.95
broadcastNewValueMethod · 0.95
ErrorfMethod · 0.80
LogMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected