jpisaac commented on code in PR #1748:
URL: https://github.com/apache/phoenix/pull/1748#discussion_r1434485333
##########
phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java:
##########
@@ -544,32 +548,51 @@ public ConnectionQueryServicesImpl(QueryServices
services, ConnectionInfo connec
}
- private void openConnection() throws SQLException {
+ private Connection openConnection(Configuration conf) throws SQLException {
+ Connection localConnection;
try {
- this.connection =
HBaseFactoryProvider.getHConnectionFactory().createConnection(this.config);
+ localConnection =
HBaseFactoryProvider.getHConnectionFactory().createConnection(conf);
GLOBAL_HCONNECTIONS_COUNTER.increment();
LOGGER.info("HConnection established. Stacktrace for informational
purposes: "
- + connection + " " + LogUtil.getCallerStackTrace());
+ + localConnection + " " + LogUtil.getCallerStackTrace());
} catch (IOException e) {
throw new
SQLExceptionInfo.Builder(SQLExceptionCode.CANNOT_ESTABLISH_CONNECTION)
.setRootCause(e).build().buildException();
}
- if (this.connection.isClosed()) { // TODO: why the heck doesn't this
throw above?
+ if (localConnection.isClosed()) { // TODO: why the heck doesn't this
throw above?
throw new
SQLExceptionInfo.Builder(SQLExceptionCode.CANNOT_ESTABLISH_CONNECTION).build().buildException();
}
+ return localConnection;
+ }
+
+ /*
+ We create a long-lived hbase connection to run invalidate cache RPCs. We
override
+ CUSTOM_CONTROLLER_CONF_KEY to instantiate
InvalidateMetadataCacheController which has
+ a special priority for invalidate metadata cache operations.
+ */
+ public Connection getInvalidateMetadataCacheConnection() throws
SQLException {
Review Comment:
Thanks @shahrs87 for pointing out the need for overriding the
CUSTOM_CONTROLLER_CONF_KEY. Since we are going to late binding, may make sense
to provide some synchronization, as it probably will be invoked via multiple
threads and then we may have some leaky hConnections.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]