You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/11/15 20:21:12 UTC
[40/50] [abbrv] hive git commit: HIVE-13931: Add support for HikariCP
and replace BoneCP usage with HikariCP (Prasanth Jayachandran reviewed by
Sushanth Sowmyan)
HIVE-13931: Add support for HikariCP and replace BoneCP usage with HikariCP (Prasanth Jayachandran reviewed by Sushanth Sowmyan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4427eab3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4427eab3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4427eab3
Branch: refs/heads/hive-14535
Commit: 4427eab3df52ef5c1604bc020af85c2787ca15b1
Parents: 6536e30
Author: Prasanth Jayachandran <pr...@apache.org>
Authored: Mon Nov 14 22:34:39 2016 -0800
Committer: Prasanth Jayachandran <pr...@apache.org>
Committed: Mon Nov 14 22:34:39 2016 -0800
----------------------------------------------------------------------
.../src/java/org/apache/hadoop/hive/conf/HiveConf.java | 3 ++-
.../main/java/org/apache/hadoop/hive/ql/QTestUtil.java | 1 +
metastore/pom.xml | 5 +++++
.../org/apache/hadoop/hive/metastore/txn/TxnHandler.java | 10 ++++++++++
.../hive/metastore/txn/TestTxnHandlerNegative.java | 11 ++++++++---
pom.xml | 8 +++++++-
6 files changed, 33 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
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 14dacf5..200a1ad 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -717,7 +717,8 @@ public class HiveConf extends Configuration {
"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", "BONECP", new StringSet("BONECP", "DBCP",
+ "HikariCP", "NONE"),
"Specify connection pool library for datanucleus"),
// Workaround for DN bug on Postgres:
// http://www.datanucleus.org/servlet/forum/viewthread_thread,7985_offset
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
index adb2c0e..ab21589 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
@@ -1706,6 +1706,7 @@ public class QTestUtil {
"fk_-?[0-9]*_[0-9]*_[0-9]*",
".*at com\\.sun\\.proxy.*",
".*at com\\.jolbox.*",
+ ".*at com\\.zaxxer.*",
"org\\.apache\\.hadoop\\.hive\\.metastore\\.model\\.MConstraint@([0-9]|[a-z])*",
"(s3.?|swift|wasb.?):\\/\\/[\\w\\.\\/-]*"
});
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/metastore/pom.xml
----------------------------------------------------------------------
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 @@
<version>${bonecp.version}</version>
</dependency>
<dependency>
+ <groupId>com.zaxxer</groupId>
+ <artifactId>HikariCP</artifactId>
+ <version>${hikaricp.version}</version>
+ </dependency>
+ <dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>${commons-cli.version}</version>
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
----------------------------------------------------------------------
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 a815f2c..97d09df 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
@@ -20,6 +20,9 @@ package org.apache.hadoop.hive.metastore.txn;
import com.google.common.annotations.VisibleForTesting;
import com.jolbox.bonecp.BoneCPConfig;
import com.jolbox.bonecp.BoneCPDataSource;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
@@ -2939,6 +2942,13 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
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 if ("none".equals(connectionPooler)) {
LOG.info("Choosing not to pool JDBC connections");
connPool = new NoPoolConnectionPool(conf);
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandlerNegative.java
----------------------------------------------------------------------
diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandlerNegative.java b/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandlerNegative.java
index ddee0fb..639669e 100644
--- a/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandlerNegative.java
+++ b/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandlerNegative.java
@@ -17,13 +17,14 @@
*/
package org.apache.hadoop.hive.metastore.txn;
-import org.apache.tools.ant.RuntimeConfigurable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.api.MetaException;
import org.junit.Test;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
public class TestTxnHandlerNegative {
static final private Logger LOG = LoggerFactory.getLogger(TestTxnHandlerNegative.class);
@@ -44,6 +45,10 @@ public class TestTxnHandlerNegative {
LOG.info("Expected error: " + ex.getMessage(), ex);
e = ex;
}
- assert e != null && e.getMessage().contains("No suitable driver found for blah") : "did not get exception";
+ assertNotNull(e);
+ assertTrue(
+ e.getMessage().contains("No suitable driver found for blah")
+ || e.getMessage().contains("Failed to get driver instance for jdbcUrl=blah")
+ );
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/4427eab3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2e1d6ed..8c58f4c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,7 +100,7 @@
<maven.install.plugin.version>2.4</maven.install.plugin.version>
<maven.jar.plugin.version>2.4</maven.jar.plugin.version>
<maven.javadoc.plugin.version>2.4</maven.javadoc.plugin.version>
- <maven.shade.plugin.version>2.2</maven.shade.plugin.version>
+ <maven.shade.plugin.version>2.4.3</maven.shade.plugin.version>
<maven.surefire.plugin.version>2.19.1</maven.surefire.plugin.version>
<maven.war.plugin.version>2.4</maven.war.plugin.version>
<maven.dependency.plugin.version>2.8</maven.dependency.plugin.version>
@@ -144,6 +144,7 @@
<hbase.version>1.1.1</hbase.version>
<!-- required for logging test to avoid including hbase which pulls disruptor transitively -->
<disruptor.version>3.3.0</disruptor.version>
+ <hikaricp.version>2.5.1</hikaricp.version>
<!-- httpcomponents are not always in version sync -->
<httpcomponents.client.version>4.4</httpcomponents.client.version>
<httpcomponents.core.version>4.4</httpcomponents.core.version>
@@ -289,6 +290,11 @@
<version>${bonecp.version}</version>
</dependency>
<dependency>
+ <groupId>com.zaxxer</groupId>
+ <artifactId>HikariCP</artifactId>
+ <version>${hikaricp.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet</artifactId>
<version>${parquet.version}</version>