/// <summary> /// this method should be called by the event debouncer /// </summary> internal bool RemoveKeyspaceFromTokenMap(string name) { Metadata.Logger.Verbose("Removing keyspace metadata: " + name); var dropped = _keyspaces.TryRemove(name, out _); _tokenMap?.RemoveKeyspace(name); return(dropped); }
internal Task <bool> RemoveKeyspaceFromTokenMap(string name) { var currentCounter = Interlocked.Read(ref _counterRebuild); var currentKeyspaceCounter = _keyspacesUpdateCounters.GetOrAdd(name, s => 0); return(_tokenMapTaskFactory.StartNew( () => { if (AnotherRebuildCompleted(currentCounter)) { return true; } if (!UpdateKeyspaceNecessary(name, currentKeyspaceCounter)) { return true; } Metadata.Logger.Verbose("Removing keyspace metadata: " + name); if (!_keyspaces.TryRemove(name, out var ks)) { //The keyspace didn't exist return false; } _tokenMap?.RemoveKeyspace(ks); return true; })); }