diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index afd7c70..9b27b28 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -655,7 +655,7 @@ private static void populateLlapDaemonVarsSet(Set llapDaemonVarsSetLocal "Defaults to all permissions for the hiveserver2/metastore process user."), METASTORE_CACHE_PINOBJTYPES("hive.metastore.cache.pinobjtypes", "Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order", "List of comma separated metastore object types that should be pinned in the cache"), - METASTORE_CONNECTION_POOLING_TYPE("datanucleus.connectionPoolingType", "BONECP", + METASTORE_CONNECTION_POOLING_TYPE("datanucleus.connectionPoolingType", "HikariCP", "Specify connection pool library for datanucleus"), METASTORE_VALIDATE_TABLES("datanucleus.schema.validateTables", false, "validates existing schema against code. turn this on if you want to verify existing schema"), diff --git a/metastore/pom.xml b/metastore/pom.xml index 7f75d4db..c1b707a 100644 --- a/metastore/pom.xml +++ b/metastore/pom.xml @@ -81,6 +81,11 @@ ${bonecp.version} + com.zaxxer + HikariCP + ${hikaricp.version} + + commons-cli commons-cli ${commons-cli.version} diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java b/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java index c859cbd..7b95743 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java @@ -19,6 +19,8 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.Service; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; import com.jolbox.bonecp.BoneCPConfig; import com.jolbox.bonecp.BoneCPDataSource; import org.apache.commons.dbcp.ConnectionFactory; @@ -2942,6 +2944,13 @@ private static synchronized void setupJdbcConnectionPool(HiveConf conf) throws S PoolableConnectionFactory poolConnFactory = new PoolableConnectionFactory(connFactory, objectPool, null, null, false, true); connPool = new PoolingDataSource(objectPool); + } else if ("hikaricp".equals(connectionPooler)) { + HikariConfig config = new HikariConfig(); + config.setJdbcUrl(driverUrl); + config.setUsername(user); + config.setPassword(passwd); + + connPool = new HikariDataSource(config); } else { throw new RuntimeException("Unknown JDBC connection pooling " + connectionPooler); } diff --git a/pom.xml b/pom.xml index 63a5ae1..3fb644c 100644 --- a/pom.xml +++ b/pom.xml @@ -137,6 +137,7 @@ 1.1.1 3.3.0 + 2.4.5 4.4 4.4 @@ -280,6 +281,11 @@ ${bonecp.version} + com.zaxxer + HikariCP + ${hikaricp.version} + + org.apache.parquet parquet ${parquet.version}