Author: garyh
Date: Fri Sep 16 21:10:56 2011
New Revision: 1171785
URL: http://svn.apache.org/viewvc?rev=1171785&view=rev
Log:
HBASE-4420 MasterObserver preMove() and postMove() should throw IOException
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
Modified: hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Sep 16 21:10:56 2011
@@ -279,6 +279,8 @@ Release 0.91.0 - Unreleased
(Stefan Seelmann)
HBASE-4195 Possible inconsistency in a memstore read after a reseek,
possible performance improvement (nkeywal)
+ HBASE-4420 MasterObserver preMove() and postMove() should throw
+ IOException instead of UnknownRegionException
IMPROVEMENTS
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
Fri Sep 16 21:10:56 2011
@@ -177,12 +177,12 @@ public class BaseMasterObserver implemen
@Override
public void preMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
HRegionInfo region, ServerName srcServer, ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
}
@Override
public void postMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
HRegionInfo region, ServerName srcServer, ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
}
}
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
Fri Sep 16 21:10:56 2011
@@ -187,7 +187,7 @@ public interface MasterObserver extends
void preMove(final ObserverContext<MasterCoprocessorEnvironment> ctx,
final HRegionInfo region, final ServerName srcServer,
final ServerName destServer)
- throws UnknownRegionException;
+ throws IOException;
/**
* Called after the region move has been requested.
@@ -199,7 +199,7 @@ public interface MasterObserver extends
void postMove(final ObserverContext<MasterCoprocessorEnvironment> ctx,
final HRegionInfo region, final ServerName srcServer,
final ServerName destServer)
- throws UnknownRegionException;
+ throws IOException;
/**
* Called prior to assigning a specific region.
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Fri
Sep 16 21:10:56 2011
@@ -922,16 +922,23 @@ implements HMasterInterface, HMasterRegi
this.assignmentManager.unassign(hri);
} else {
dest = new ServerName(Bytes.toString(destServerName));
- if (this.cpHost != null) {
- if (this.cpHost.preMove(p.getFirst(), p.getSecond(), dest)) {
- return;
+ try {
+ if (this.cpHost != null) {
+ if (this.cpHost.preMove(p.getFirst(), p.getSecond(), dest)) {
+ return;
+ }
}
- }
- RegionPlan rp = new RegionPlan(p.getFirst(), p.getSecond(), dest);
- LOG.info("Added move plan " + rp + ", running balancer");
- this.assignmentManager.balance(rp);
- if (this.cpHost != null) {
- this.cpHost.postMove(p.getFirst(), p.getSecond(), dest);
+ RegionPlan rp = new RegionPlan(p.getFirst(), p.getSecond(), dest);
+ LOG.info("Added move plan " + rp + ", running balancer");
+ this.assignmentManager.balance(rp);
+ if (this.cpHost != null) {
+ this.cpHost.postMove(p.getFirst(), p.getSecond(), dest);
+ }
+ } catch (IOException ioe) {
+ UnknownRegionException ure = new UnknownRegionException(
+ Bytes.toStringBinary(encodedRegionName));
+ ure.initCause(ioe);
+ throw ure;
}
}
}
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
Fri Sep 16 21:10:56 2011
@@ -300,7 +300,7 @@ public class MasterCoprocessorHost
}
boolean preMove(final HRegionInfo region, final ServerName srcServer, final
ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
boolean bypass = false;
ObserverContext<MasterCoprocessorEnvironment> ctx = null;
for (MasterEnvironment env: coprocessors) {
@@ -318,7 +318,7 @@ public class MasterCoprocessorHost
}
void postMove(final HRegionInfo region, final ServerName srcServer, final
ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
ObserverContext<MasterCoprocessorEnvironment> ctx = null;
for (MasterEnvironment env: coprocessors) {
if (env.getInstance() instanceof MasterObserver) {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
Fri Sep 16 21:10:56 2011
@@ -312,7 +312,7 @@ public class TestMasterObserver {
@Override
public void preMove(ObserverContext<MasterCoprocessorEnvironment> env,
HRegionInfo region, ServerName srcServer, ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
if (bypass) {
env.bypass();
}
@@ -322,7 +322,7 @@ public class TestMasterObserver {
@Override
public void postMove(ObserverContext<MasterCoprocessorEnvironment> env,
HRegionInfo region,
ServerName srcServer, ServerName destServer)
- throws UnknownRegionException {
+ throws IOException {
postMoveCalled = true;
}