You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by wa...@apache.org on 2020/10/11 11:13:24 UTC
[hbase] branch master updated: HBASE-24840 Avoid shows closing
region task when create table (#2226)
This is an automated email from the ASF dual-hosted git repository.
wangzheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 5a47444 HBASE-24840 Avoid shows closing region task when create table (#2226)
5a47444 is described below
commit 5a474449c160b15a4a65b869df859d1027879136
Author: bsglz <18...@qq.com>
AuthorDate: Sun Oct 11 19:12:56 2020 +0800
HBASE-24840 Avoid shows closing region task when create table (#2226)
---
.../java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java | 10 ++++++++--
.../java/org/apache/hadoop/hbase/regionserver/HRegion.java | 10 ++++++++--
.../java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java | 2 +-
3 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
index 1bde915..d2edaa8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
@@ -87,8 +87,12 @@ public class TaskMonitor {
}
return instance;
}
-
+
public synchronized MonitoredTask createStatus(String description) {
+ return createStatus(description, false);
+ }
+
+ public synchronized MonitoredTask createStatus(String description, boolean ignore) {
MonitoredTask stat = new MonitoredTaskImpl();
stat.setDescription(description);
MonitoredTask proxy = (MonitoredTask) Proxy.newProxyInstance(
@@ -99,7 +103,9 @@ public class TaskMonitor {
if (tasks.isFull()) {
purgeExpiredTasks();
}
- tasks.add(pair);
+ if (!ignore) {
+ tasks.add(pair);
+ }
return proxy;
}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index a208d93..57a1e1f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -1578,6 +1578,10 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
*/
public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G
+ public Map<byte[], List<HStoreFile>> close(boolean abort) throws IOException {
+ return close(abort, false);
+ }
+
/**
* Close down this HRegion. Flush the cache unless abort parameter is true,
* Shut down each HStore, don't service any more calls.
@@ -1586,6 +1590,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
* time-sensitive thread.
*
* @param abort true if server is aborting (only during testing)
+ * @param ignoreStatus true if ignore the status (wont be showed on task list)
* @return Vector of all the storage files that the HRegion's component
* HStores make use of. It's a list of StoreFile objects. Can be null if
* we are not to close at this time or we are already closed.
@@ -1595,12 +1600,13 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
* because a Snapshot was not properly persisted. The region is put in closing mode, and the
* caller MUST abort after this.
*/
- public Map<byte[], List<HStoreFile>> close(boolean abort) throws IOException {
+ public Map<byte[], List<HStoreFile>> close(boolean abort, boolean ignoreStatus)
+ throws IOException {
// Only allow one thread to close at a time. Serialize them so dual
// threads attempting to close will run up against each other.
MonitoredTask status = TaskMonitor.get().createStatus(
"Closing region " + this.getRegionInfo().getEncodedName() +
- (abort ? " due to abort" : ""));
+ (abort ? " due to abort" : ""), ignoreStatus);
status.enableStatusJournal(true);
status.setStatus("Waiting for close lock");
try {
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
index b4e5863..a3a0c7b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
@@ -186,7 +186,7 @@ public abstract class ModifyRegionUtils {
}
} finally {
// 3. Close the new region to flush to disk. Close log file too.
- region.close();
+ region.close(false, true);
}
return region.getRegionInfo();
}