@Override public Catalog getCatalog(String catalogName) throws NoSuchObjectException, MetaException {
    // in case of event based cache update, cache will not be updated for catalog.
    if (!sharedCache.isCatalogCachePrewarmed() || canUseEvents) {
      return rawStore.getCatalog(catalogName);
    }
    Catalog cat = sharedCache.getCatalogFromCache(normalizeIdentifier(catalogName));
    if (cat == null) {
      throw new NoSuchObjectException();
    }
    return cat;
  }
This starts a background thread, which initially populates the SharedCache and later
periodically gets updates from the metastore db

@param conf
@param runOnlyOnce
@param shouldRunPrewarm
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java