You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ti...@apache.org on 2019/03/20 06:12:28 UTC
[hbase] branch master updated: HBASE-22061
SplitTableRegionProcedure should hold the lock of its daughter regions
This is an automated email from the ASF dual-hosted git repository.
tianjy 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 c52dd9e HBASE-22061 SplitTableRegionProcedure should hold the lock of its daughter regions
c52dd9e is described below
commit c52dd9efa0607f922be5147f029fb0da4fa3f07b
Author: Jingyun Tian <ti...@gmail.com>
AuthorDate: Tue Mar 19 14:25:04 2019 +0800
HBASE-22061 SplitTableRegionProcedure should hold the lock of its daughter regions
---
.../master/assignment/SplitTableRegionProcedure.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
index 8e0dcd3..7b74919 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java
@@ -137,6 +137,26 @@ public class SplitTableRegionProcedure
}
}
+ @Override
+ protected LockState acquireLock(final MasterProcedureEnv env) {
+ if (env.getProcedureScheduler().waitRegions(this, getTableName(), getParentRegion(),
+ daughter_1_RI, daughter_2_RI)) {
+ try {
+ LOG.debug(LockState.LOCK_EVENT_WAIT + " " + env.getProcedureScheduler().dumpLocks());
+ } catch (IOException e) {
+ // Ignore, just for logging
+ }
+ return LockState.LOCK_EVENT_WAIT;
+ }
+ return LockState.LOCK_ACQUIRED;
+ }
+
+ @Override
+ protected void releaseLock(final MasterProcedureEnv env) {
+ env.getProcedureScheduler().wakeRegions(this, getTableName(), getParentRegion(), daughter_1_RI,
+ daughter_2_RI);
+ }
+
/**
* Check whether the region is splittable
* @param env MasterProcedureEnv