Repository: phoenix Updated Branches: refs/heads/5.x-HBase-2.0 e1238aa3c -> c85e06581
PHOENIX-4377 Port PHOENIX-3081 to HBase-2.0 Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/c85e0658 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/c85e0658 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/c85e0658 Branch: refs/heads/5.x-HBase-2.0 Commit: c85e06581643f97242131d03b604781546817e4b Parents: e1238aa Author: Ankit Singhal <[email protected]> Authored: Wed Nov 15 11:31:31 2017 +0530 Committer: Ankit Singhal <[email protected]> Committed: Wed Nov 15 11:31:31 2017 +0530 ---------------------------------------------------------------------- .../phoenix/schema/stats/StatisticsScanner.java | 26 +++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/c85e0658/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java index 2fb6f14..3f5809b 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/StatisticsScanner.java @@ -29,13 +29,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; -import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.KeyValue; +import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Mutation; +import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.regionserver.InternalScanner; import org.apache.hadoop.hbase.regionserver.Region; -import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.regionserver.ScannerContext; import org.apache.phoenix.hbase.index.util.ImmutableBytesPtr; @@ -50,15 +50,15 @@ public class StatisticsScanner implements InternalScanner { private StatisticsCollector tracker; private ImmutableBytesPtr family; private final Configuration config; - private final RegionServerServices regionServerServices; + private final RegionCoprocessorEnvironment env; public StatisticsScanner(StatisticsCollector tracker, StatisticsWriter stats, RegionCoprocessorEnvironment env, InternalScanner delegate, ImmutableBytesPtr family) { this.tracker = tracker; this.statsWriter = stats; this.delegate = delegate; - this.regionServerServices = env.getRegionServerServices(); this.region = env.getRegion(); + this.env = env; this.family = family; this.config = env.getConfiguration(); StatisticsCollectionRunTracker.getInstance(config).addCompactingRegion(region.getRegionInfo()); @@ -94,7 +94,7 @@ public class StatisticsScanner implements InternalScanner { boolean async = getConfig().getBoolean(COMMIT_STATS_ASYNC, DEFAULT_COMMIT_STATS_ASYNC); StatisticsCollectionRunTracker collectionTracker = getStatsCollectionRunTracker(config); StatisticsScannerCallable callable = createCallable(); - if (getRegionServerServices().isStopping() || getRegionServerServices().isStopped()) { + if (isConnectionClosed()) { LOG.debug("Not updating table statistics because the server is stopping/stopped"); return; } @@ -118,13 +118,13 @@ public class StatisticsScanner implements InternalScanner { return statsWriter; } - RegionServerServices getRegionServerServices() { - return regionServerServices; - } - Region getRegion() { return region; } + + Connection getConnection() { + return env.getConnection(); + } StatisticsScannerCallable createCallable() { return new StatisticsScannerCallable(); @@ -143,7 +143,7 @@ public class StatisticsScanner implements InternalScanner { public Void call() throws IOException { IOException toThrow = null; StatisticsCollectionRunTracker collectionTracker = getStatsCollectionRunTracker(config); - final HRegionInfo regionInfo = getRegion().getRegionInfo(); + final RegionInfo regionInfo = getRegion().getRegionInfo(); try { // update the statistics table // Just verify if this if fine @@ -165,7 +165,7 @@ public class StatisticsScanner implements InternalScanner { } getStatisticsWriter().commitStats(mutations, tracker); } catch (IOException e) { - if (getRegionServerServices().isStopping() || getRegionServerServices().isStopped()) { + if (isConnectionClosed()) { LOG.debug("Ignoring error updating statistics because region is closing/closed"); } else { LOG.error("Failed to update statistics table!", e); @@ -195,4 +195,8 @@ public class StatisticsScanner implements InternalScanner { } } + private boolean isConnectionClosed() { + return getConnection() == null || getConnection().isClosed() || getConnection().isAborted(); + } + }
