private void updateTablePartitions(RawStore rawStore, String catName, String dbName, String tblName) {
      LOG.debug("CachedStore: updating cached partition objects for catalog: {}, database: {}, table: {}", catName,
          dbName, tblName);
      try {
        Deadline.startTimer("getPartitions");
        List<Partition> partitions = rawStore.getPartitions(catName, dbName, tblName, -1);
        Deadline.stopTimer();
        sharedCache
            .refreshPartitionsInCache(StringUtils.normalizeIdentifier(catName), StringUtils.normalizeIdentifier(dbName),
                StringUtils.normalizeIdentifier(tblName), partitions);
        LOG.debug("CachedStore: updated cached partition objects for catalog: {}, database: {}, table: {}", catName,
            dbName, tblName);
      } catch (MetaException | NoSuchObjectException e) {
        LOG.info("Updating CachedStore: unable to read partitions of table: " + tblName, e);
      }
    }
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