public void putIfAbsent(Table materializedViewTable, HiveRelOptMaterialization materialization) {
    ConcurrentMap<String, HiveRelOptMaterialization> dbMap = ensureDbMap(materializedViewTable);

    // You store the materialized view
    dbMap.computeIfAbsent(materializedViewTable.getTableName(), (mvTableName) -> {
      List<HiveRelOptMaterialization> materializationList = sqlToMaterializedView.computeIfAbsent(
              new ASTKey(materialization.getAst()), s -> new ArrayList<>());
      materializationList.add(materialization);
      return materialization;
    });

    LOG.debug("Materialized view {}.{} added to registry",
            materializedViewTable.getDbName(), materializedViewTable.getTableName());
  }
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