@Override
  public Set<K> keySet() {
    final Set<K> ks = keySet;
    return (ks != null) ? ks : (keySet = new KeySet());
  }
Returns a {@link Set} view of the keys contained in this map. The set is backed by the map, so
changes to the map are reflected in the set, and vice-versa. The set supports element removal,
which removes the corresponding mapping from this map, via the <tt>Iterator.remove</tt>,
<tt>Set.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt> operations. It
does not support the <tt>add</tt> or <tt>addAll</tt> operations.

<p>
The view's <tt>iterator</tt> is a "weakly consistent" iterator that will never throw
{@link java.util.ConcurrentModificationException}, and guarantees to traverse elements as they
existed upon construction of the iterator, and may (but is not guaranteed to) reflect any
modifications subsequent to construction.
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java