This is an automated email from the ASF dual-hosted git repository. stoty pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/master by this push: new 3baae1a405 PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection 3baae1a405 is described below commit 3baae1a40569fbca3a2149c7c3982fe03c58caef Author: Istvan Toth <st...@apache.org> AuthorDate: Fri Feb 10 20:49:39 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 | 8 ++++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 8 ++++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 15 +++++++++++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 7 +++++++ 5 files changed, 40 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 333c849886..015c6beaf3 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 @@ -49,6 +49,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; @@ -313,7 +314,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.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 c07353f02a..efd5e5dbd4 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 @@ -17,12 +17,15 @@ */ package org.apache.phoenix.compat.hbase; +import java.io.IOException; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellComparator; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.TableName; 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.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; import org.apache.hadoop.hbase.io.hfile.HFileContext; @@ -66,4 +69,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 bf32584603..ff0f69a0b5 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 @@ -17,12 +17,15 @@ */ package org.apache.phoenix.compat.hbase; +import java.io.IOException; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellComparator; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.TableName; 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.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; import org.apache.hadoop.hbase.io.hfile.HFileContext; @@ -66,4 +69,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 a59f19e8bb..e78738ccd8 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 @@ -17,18 +17,22 @@ */ package org.apache.phoenix.compat.hbase; +import java.io.IOException; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellComparator; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.TableName; 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.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; import org.apache.hadoop.hbase.io.hfile.HFileContext; import org.apache.hadoop.hbase.io.hfile.HFileContextBuilder; import org.apache.hadoop.hbase.regionserver.StoreUtils; import org.apache.hadoop.hbase.util.ChecksumType; +import org.apache.hadoop.hbase.util.VersionInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +42,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 } @@ -66,4 +73,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 a59f19e8bb..aa48882404 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 @@ -17,12 +17,15 @@ */ package org.apache.phoenix.compat.hbase; +import java.io.IOException; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellComparator; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.TableName; 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.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; import org.apache.hadoop.hbase.io.hfile.HFileContext; @@ -66,4 +69,8 @@ public class CompatUtil { return StoreUtils.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + return env.createConnection(configuration); + } }