@Override
  public synchronized boolean remove(Object key, Object value) {
    V oldValue = map.get(key);
    if (oldValue != null && oldValue.equals(value)) {
      remove(key);
      return true;
    }

    return false;
  }
A copy on write hash map.

Note that the entryKey and keySet of this map are unmodifable. Should be easy to make them
modifiable at a future time.
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CopyOnWriteHashMap.java