BiFunction<String, PropertyMap, PropertyMap> mapsCompute(String string, Function<String, PropertySchema> getSchema) {
    return (k, v) -> {
      PropertyMap map = v;
      if (map != null) {
        UUID digest = map.getDigest();
        UUID fetchedDigest = fetchDigest(string);
        if (fetchedDigest != null && !Objects.equals(digest, fetchedDigest)) {
          map = null;
        }
      }
      if (map == null) {
        map = store.fetchProperties(string, getSchema);
      }
      return map;
    };
  }
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