You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gx...@apache.org on 2020/06/16 09:39:56 UTC
[hbase] branch branch-2.3 updated: HBASE-24478 The regionInfo parameter for MasterProcedureScheduler#wai… (#1819)
This is an automated email from the ASF dual-hosted git repository.
gxcheng pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.3 by this push:
new 98b96d9 HBASE-24478 The regionInfo parameter for MasterProcedureScheduler#wai… (#1819)
98b96d9 is described below
commit 98b96d929be29f251508c700c6b0f18da7fda6a0
Author: xincunSong <36...@qq.com>
AuthorDate: Tue Jun 16 17:34:07 2020 +0800
HBASE-24478 The regionInfo parameter for MasterProcedureScheduler#wai… (#1819)
Signed-off-by: Guangxu Cheng <gx...@apache.org>
Signed-off-by: clarax <cl...@gmail.com>
---
.../master/procedure/MasterProcedureScheduler.java | 40 +++++++++++-----------
.../procedure/TestMasterProcedureScheduler.java | 16 ++++-----
2 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java
index 750da90..80db5ef 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.java
@@ -701,12 +701,12 @@ public class MasterProcedureScheduler extends AbstractProcedureScheduler {
* Suspend the procedure if the specified set of regions are already locked.
* @param procedure the procedure trying to acquire the lock on the regions
* @param table the table name of the regions we are trying to lock
- * @param regionInfo the list of regions we are trying to lock
+ * @param regionInfos the list of regions we are trying to lock
* @return true if the procedure has to wait for the regions to be available
*/
public boolean waitRegions(final Procedure<?> procedure, final TableName table,
- final RegionInfo... regionInfo) {
- Arrays.sort(regionInfo, RegionInfo.COMPARATOR);
+ final RegionInfo... regionInfos) {
+ Arrays.sort(regionInfos, RegionInfo.COMPARATOR);
schedLock();
try {
assert table != null;
@@ -716,14 +716,14 @@ public class MasterProcedureScheduler extends AbstractProcedureScheduler {
// acquire region xlocks or wait
boolean hasLock = true;
- final LockAndQueue[] regionLocks = new LockAndQueue[regionInfo.length];
- for (int i = 0; i < regionInfo.length; ++i) {
- assert regionInfo[i] != null;
- assert regionInfo[i].getTable() != null;
- assert regionInfo[i].getTable().equals(table): regionInfo[i] + " " + procedure;
- assert i == 0 || regionInfo[i] != regionInfo[i - 1] : "duplicate region: " + regionInfo[i];
-
- regionLocks[i] = locking.getRegionLock(regionInfo[i].getEncodedName());
+ final LockAndQueue[] regionLocks = new LockAndQueue[regionInfos.length];
+ for (int i = 0; i < regionInfos.length; ++i) {
+ assert regionInfos[i] != null;
+ assert regionInfos[i].getTable() != null;
+ assert regionInfos[i].getTable().equals(table): regionInfos[i] + " " + procedure;
+ assert i == 0 || regionInfos[i] != regionInfos[i - 1] : "duplicate region: " + regionInfos[i];
+
+ regionLocks[i] = locking.getRegionLock(regionInfos[i].getEncodedName());
if (!regionLocks[i].tryExclusiveLock(procedure)) {
LOG.info("Waiting on xlock for {} held by pid={}", procedure,
regionLocks[i].getExclusiveLockProcIdOwner());
@@ -759,26 +759,26 @@ public class MasterProcedureScheduler extends AbstractProcedureScheduler {
/**
* Wake the procedures waiting for the specified regions
* @param procedure the procedure that was holding the regions
- * @param regionInfo the list of regions the procedure was holding
+ * @param regionInfos the list of regions the procedure was holding
*/
public void wakeRegions(final Procedure<?> procedure,final TableName table,
- final RegionInfo... regionInfo) {
- Arrays.sort(regionInfo, RegionInfo.COMPARATOR);
+ final RegionInfo... regionInfos) {
+ Arrays.sort(regionInfos, RegionInfo.COMPARATOR);
schedLock();
try {
int numProcs = 0;
- final Procedure<?>[] nextProcs = new Procedure[regionInfo.length];
- for (int i = 0; i < regionInfo.length; ++i) {
- assert regionInfo[i].getTable().equals(table);
- assert i == 0 || regionInfo[i] != regionInfo[i - 1] : "duplicate region: " + regionInfo[i];
+ final Procedure<?>[] nextProcs = new Procedure[regionInfos.length];
+ for (int i = 0; i < regionInfos.length; ++i) {
+ assert regionInfos[i].getTable().equals(table);
+ assert i == 0 || regionInfos[i] != regionInfos[i - 1] : "duplicate region: " + regionInfos[i];
- LockAndQueue regionLock = locking.getRegionLock(regionInfo[i].getEncodedName());
+ LockAndQueue regionLock = locking.getRegionLock(regionInfos[i].getEncodedName());
if (regionLock.releaseExclusiveLock(procedure)) {
if (!regionLock.isWaitingQueueEmpty()) {
// release one procedure at the time since regions has an xlock
nextProcs[numProcs++] = regionLock.removeFirst();
} else {
- locking.removeRegionLock(regionInfo[i].getEncodedName());
+ locking.removeRegionLock(regionInfos[i].getEncodedName());
}
}
}
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.java
index 66e72d0..1ce9658 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureScheduler.java
@@ -850,30 +850,30 @@ public class TestMasterProcedureScheduler {
}
public static class TestRegionProcedure extends TestTableProcedure {
- private final RegionInfo[] regionInfo;
+ private final RegionInfo[] regionInfos;
public TestRegionProcedure() {
throw new UnsupportedOperationException("recovery should not be triggered here");
}
public TestRegionProcedure(long procId, TableName tableName, TableOperationType opType,
- RegionInfo... regionInfo) {
- this(-1, procId, tableName, opType, regionInfo);
+ RegionInfo... regionInfos) {
+ this(-1, procId, tableName, opType, regionInfos);
}
public TestRegionProcedure(long parentProcId, long procId, TableName tableName,
- TableOperationType opType, RegionInfo... regionInfo) {
- this(-1, parentProcId, procId, tableName, opType, regionInfo);
+ TableOperationType opType, RegionInfo... regionInfos) {
+ this(-1, parentProcId, procId, tableName, opType, regionInfos);
}
public TestRegionProcedure(long rootProcId, long parentProcId, long procId, TableName tableName,
- TableOperationType opType, RegionInfo... regionInfo) {
+ TableOperationType opType, RegionInfo... regionInfos) {
super(rootProcId, parentProcId, procId, tableName, opType);
- this.regionInfo = regionInfo;
+ this.regionInfos = regionInfos;
}
public RegionInfo[] getRegionInfo() {
- return regionInfo;
+ return regionInfos;
}
@Override