@Override
  public PropertyMap fetchProperties(final String mapKey, final Function<String, PropertySchema> getSchema) {
    synchronized(this) {
      PropertyMap map = maps.compute(mapKey, mapsCompute(mapKey, getSchema));
      // we always return a copy of the properties in the cache
      return map != null? map.copy() : null;
    }
  }
A property map store using a pull-thru cache.
<p>
Before a map is returned, a check against the stored corresponding digest is performed to avoid
using stale data.
</p>
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/CachingPropertyStore.java