public void remove(String dbName, String tableName) {
    ConcurrentMap<String, HiveRelOptMaterialization> dbMap = materializedViews.get(dbName);
    if (dbMap != null) {
      dbMap.computeIfPresent(tableName, (mvTableName, materialization) -> {
        remove(materialization, HiveMaterializedViewUtils.extractTable(materialization));
        return null;
      });

      if (dbMap.isEmpty()) {
        materializedViews.remove(dbName);
      }

      LOG.debug("Materialized view {}.{} removed from registry", dbName, tableName);
    }
  }
Collection for storing {@link HiveRelOptMaterialization}s.
Materialization can be lookup by
- the Materialized View fully qualified name
- query text.
This implementation contains two {@link ConcurrentHashMap} one for name based and one for query text based lookup.
The map contents are synchronized during each dml operation: Dml operations are performed initially on the map
which provides name based lookup. The map which provides query text based lookup is updated by lambda expressions
passed to {@link ConcurrentHashMap#compute(Object, BiFunction)}.
ql/src/java/org/apache/hadoop/hive/ql/metadata/MaterializedViewsCache.java