You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by st...@apache.org on 2023/02/11 09:16:46 UTC
[phoenix] branch 5.1 updated: PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection
This is an automated email from the ASF dual-hosted git repository.
stoty pushed a commit to branch 5.1
in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/5.1 by this push:
new 34bf173615 PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection
34bf173615 is described below
commit 34bf1736158f0d0277e25ae2b6599f8ac9a1735d
Author: Istvan Toth <st...@apache.org>
AuthorDate: Fri Feb 10 20:41:09 2023 +0100
PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection
---
.../src/main/java/org/apache/phoenix/util/ServerUtil.java | 3 ++-
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 13 +++++++++++++
.../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 5 +++++
7 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java
index 968d6ef21c..3f1482604d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.ipc.controller.InterRegionServerIndexRpcControlle
import org.apache.hadoop.hbase.regionserver.Region;
import org.apache.hadoop.hbase.regionserver.Region.RowLock;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.phoenix.compat.hbase.CompatUtil;
import org.apache.phoenix.coprocessor.HashJoinCacheNotFoundException;
import org.apache.phoenix.exception.PhoenixIOException;
import org.apache.phoenix.exception.SQLExceptionCode;
@@ -311,7 +312,7 @@ public class ServerUtil {
@Override
public Connection apply(ConnectionType t) {
try {
- return env.createConnection(getTypeSpecificConfiguration(connectionType, env.getConfiguration()));
+ return CompatUtil.createShortCircuitConnection(getTypeSpecificConfiguration(connectionType, env.getConfiguration()), env);
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index be773ef0c7..6977af5b0a 100644
--- a/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.hfile.HFileContextBuilder;
import org.apache.hadoop.hbase.regionserver.HStore;
@@ -85,4 +86,9 @@ public class CompatUtil {
return HStore.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ //Short Circuit connections are broken before 2.4.12
+ return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration);
+ }
}
diff --git a/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index be4b2d434a..59a87ece90 100644
--- a/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.hfile.HFileContextBuilder;
import org.apache.hadoop.hbase.regionserver.HStore;
@@ -85,4 +86,9 @@ public class CompatUtil {
return HStore.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ //Short Circuit connections are broken before 2.4.12
+ return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration);
+ }
}
diff --git a/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index 8c2ae9e6c1..2fbeebba08 100644
--- a/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -28,6 +28,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
@@ -145,4 +146,9 @@ public class CompatUtil {
return HStore.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ //Short Circuit connections are broken before 2.4.12
+ return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration);
+ }
}
diff --git a/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index 073035f649..e9c51d2639 100644
--- a/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -28,6 +28,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
@@ -146,4 +147,9 @@ public class CompatUtil {
return HStore.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ //Short Circuit connections are broken before 2.4.12
+ return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration);
+ }
}
diff --git a/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index a86aa4020d..1588d5963c 100644
--- a/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
@@ -40,6 +41,7 @@ import org.apache.hadoop.hbase.regionserver.StoreUtils;
import org.apache.hadoop.hbase.security.access.Permission;
import org.apache.hadoop.hbase.security.access.PermissionStorage;
import org.apache.hadoop.hbase.util.ChecksumType;
+import org.apache.hadoop.hbase.util.VersionInfo;
import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,6 +52,9 @@ public class CompatUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(
CompatUtil.class);
+ private static boolean hasFixedShortCircuitConnection =
+ VersionInfo.compareVersion(VersionInfo.getVersion(), "2.4.12") >= 0;
+
private CompatUtil() {
//Not to be instantiated
}
@@ -146,4 +151,12 @@ public class CompatUtil {
return StoreUtils.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ if (hasFixedShortCircuitConnection) {
+ return env.createConnection(configuration);
+ } else {
+ return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration);
+ }
+ }
}
diff --git a/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
index a86aa4020d..9697b35ef6 100644
--- a/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
+++ b/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
@@ -146,4 +147,8 @@ public class CompatUtil {
return StoreUtils.getBytesPerChecksum(conf);
}
+ public static Connection createShortCircuitConnection(final Configuration configuration,
+ final RegionCoprocessorEnvironment env) throws IOException {
+ return env.createConnection(configuration);
+ }
}