protected synchronized static DataSource setupJdbcConnectionPool(Configuration conf, int maxPoolSize) {
    DataSourceProvider dsp = DataSourceProviderFactory.tryGetDataSourceProviderOrNull(conf);
    if (dsp != null) {
      try {
        return dsp.create(conf, maxPoolSize);
      } catch (SQLException e) {
        LOG.error("Unable to instantiate JDBC connection pooling", e);
        throw new RuntimeException(e);
      }
    } else {
      String connectionPooler = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.CONNECTION_POOLING_TYPE).toLowerCase();
      if ("none".equals(connectionPooler)) {
        LOG.info("Choosing not to pool JDBC connections");
        return new NoPoolConnectionPool(conf, dbProduct);
      } else {
        throw new RuntimeException("Unknown JDBC connection pooling " + connectionPooler);
      }
    }
  }
Isolation Level Notes
Plain: RC is OK
This will find transactions that have timed out and abort them.
Will also delete locks which are not associated with a transaction and have timed out
Tries to keep transactions (against metastore db) small to reduce lock contention.
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java