Author: tedyu
Date: Fri Sep 16 17:59:02 2011
New Revision: 1171697
URL: http://svn.apache.org/viewvc?rev=1171697&view=rev
Log:
HBASE-4373 HBaseAdmin.assign() does not use force flag (Ramkrishna)
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
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/ipc/HMasterInterface.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/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
hbase/trunk/src/main/ruby/hbase/admin.rb
hbase/trunk/src/main/ruby/shell/commands/assign.rb
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=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Sep 16 17:59:02 2011
@@ -494,6 +494,7 @@ Release 0.91.0 - Unreleased
HBASE-4287 If region opening fails, change region in transition into
a FAILED_OPEN state so that it can be retried quickly. (todd)
HBASE-4381 Refactor split decisions into a split policy class. (todd)
+ HBASE-4373 HBaseAdmin.assign() does not use force flag (Ramkrishna)
TASKS
HBASE-3559 Move report of split to master OFF the heartbeat channel
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
Fri Sep 16 17:59:02 2011
@@ -54,6 +54,7 @@ import org.apache.hadoop.hbase.ZooKeeper
import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.catalog.MetaReader;
import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
import org.apache.hadoop.hbase.ipc.HMasterInterface;
import org.apache.hadoop.hbase.ipc.HRegionInterface;
import org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException;
@@ -1303,16 +1304,32 @@ public class HBaseAdmin implements Abort
}
/**
- * @param regionName Region name to assign.
- * @param force True to force assign.
+ * @param regionName
+ * Region name to assign.
+ * @param force
+ * True to force assign.
* @throws MasterNotRunningException
* @throws ZooKeeperConnectionException
* @throws IOException
+ * @deprecated The <code>force</code> is unused.Use {@link #assign(byte[])}
*/
- public void assign(final byte [] regionName, final boolean force)
- throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
+ public void assign(final byte[] regionName, final boolean force)
+ throws MasterNotRunningException, ZooKeeperConnectionException,
+ IOException {
getMaster().assign(regionName, force);
}
+
+ /**
+ * @param regionName
+ * Region name to assign.
+ * @throws MasterNotRunningException
+ * @throws ZooKeeperConnectionException
+ * @throws IOException
+ */
+ public void assign(final byte[] regionName) throws MasterNotRunningException,
+ ZooKeeperConnectionException, IOException {
+ getMaster().assign(regionName);
+ }
/**
* Unassign a region from current hosting regionserver. Region will then be
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=1171697&r1=1171696&r2=1171697&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 17:59:02 2011
@@ -112,12 +112,12 @@ public class BaseMasterObserver implemen
@Override
public void preAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
+ HRegionInfo regionInfo) throws IOException {
}
-
+
@Override
public void postAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
- HRegionInfo regionInfo, boolean force) throws IOException {
+ HRegionInfo regionInfo) throws IOException {
}
@Override
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=1171697&r1=1171696&r2=1171697&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 17:59:02 2011
@@ -205,21 +205,18 @@ public interface MasterObserver extends
* Called prior to assigning a specific region.
* @param ctx the environment to interact with the framework and master
* @param regionInfo the regionInfo of the region
- * @param force whether to force assignment or not
*/
void preAssign(final ObserverContext<MasterCoprocessorEnvironment> ctx,
- final HRegionInfo regionInfo, final boolean force)
- throws IOException;
-
+ final HRegionInfo regionInfo) throws IOException;
+
/**
* Called after the region assignment has been requested.
* @param ctx the environment to interact with the framework and master
* @param regionInfo the regionInfo of the region
- * @param force whether to force assignment or not
*/
void postAssign(final ObserverContext<MasterCoprocessorEnvironment> ctx,
- final HRegionInfo regionInfo, final boolean force) throws IOException;
-
+ final HRegionInfo regionInfo) throws IOException;
+
/**
* Called prior to unassigning a given region.
* @param ctx the environment to interact with the framework and master
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
Fri Sep 16 17:59:02 2011
@@ -24,11 +24,15 @@ import java.util.List;
import org.apache.hadoop.hbase.ClusterStatus;
import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.UnknownRegionException;
import org.apache.hadoop.hbase.util.Pair;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
import org.apache.hadoop.hbase.ipc.VersionedProtocol;
+
+
/**
* Clients interact with the HMasterInterface to gain access to meta-level
* HBase functionality, like finding an HRegionServer and creating/destroying
@@ -180,11 +184,21 @@ public interface HMasterInterface extend
* found.
* @param force If true, will force the assignment.
* @throws IOException
+ * @deprecated The <code>force</code> is unused.Use {@link #assign(byte[])}
*/
public void assign(final byte [] regionName, final boolean force)
throws IOException;
/**
+ * Assign a region to a server chosen at random.
+ *
+ * @param regionName
+ * Region to assign. Will use existing RegionPlan if one found.
+ * @throws IOException
+ */
+ public void assign(final byte[] regionName) throws IOException;
+
+ /**
* Unassign a region from current hosting regionserver. Region will then be
* assigned to a regionserver chosen at random. Region could be reassigned
* back to the same server. Use {@link #move(byte[], byte[])} if you want
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=1171697&r1=1171696&r2=1171697&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 17:59:02 2011
@@ -1330,23 +1330,31 @@ implements HMasterInterface, HMasterRegi
public boolean isInitialized() {
return initialized;
}
+
+ @Override
+ @Deprecated
+ public void assign(final byte[] regionName, final boolean force)
+ throws IOException {
+ assign(regionName);
+ }
@Override
- public void assign(final byte [] regionName, final boolean force)
- throws IOException {
+ public void assign(final byte [] regionName)throws IOException {
Pair<HRegionInfo, ServerName> pair =
MetaReader.getRegion(this.catalogTracker, regionName);
if (pair == null) throw new
UnknownRegionException(Bytes.toString(regionName));
if (cpHost != null) {
- if (cpHost.preAssign(pair.getFirst(), force)) {
+ if (cpHost.preAssign(pair.getFirst())) {
return;
}
}
assignRegion(pair.getFirst());
if (cpHost != null) {
- cpHost.postAssign(pair.getFirst(), force);
+ cpHost.postAssign(pair.getFirst());
}
}
+
+
public void assignRegion(HRegionInfo hri) {
assignmentManager.assign(hri, true);
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=1171697&r1=1171696&r2=1171697&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 17:59:02 2011
@@ -332,14 +332,13 @@ public class MasterCoprocessorHost
}
}
- boolean preAssign(final HRegionInfo regionInfo, final boolean force)
- throws IOException {
+ boolean preAssign(final HRegionInfo regionInfo) throws IOException {
boolean bypass = false;
ObserverContext<MasterCoprocessorEnvironment> ctx = null;
for (MasterEnvironment env: coprocessors) {
if (env.getInstance() instanceof MasterObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
- ((MasterObserver)env.getInstance()).preAssign(ctx, regionInfo, force);
+ ((MasterObserver) env.getInstance()).preAssign(ctx, regionInfo);
bypass |= ctx.shouldBypass();
if (ctx.shouldComplete()) {
break;
@@ -349,12 +348,12 @@ public class MasterCoprocessorHost
return bypass;
}
- void postAssign(final HRegionInfo regionInfo, final boolean force) throws
IOException {
+ void postAssign(final HRegionInfo regionInfo) throws IOException {
ObserverContext<MasterCoprocessorEnvironment> ctx = null;
for (MasterEnvironment env: coprocessors) {
if (env.getInstance() instanceof MasterObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
- ((MasterObserver)env.getInstance()).postAssign(ctx, regionInfo, force);
+ ((MasterObserver) env.getInstance()).postAssign(ctx, regionInfo);
if (ctx.shouldComplete()) {
break;
}
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
Fri Sep 16 17:59:02 2011
@@ -80,7 +80,7 @@ public class HBaseFsckRepair {
private static void forceOfflineInZK(HBaseAdmin admin, final HRegionInfo
region)
throws ZooKeeperConnectionException, KeeperException, IOException {
- admin.assign(region.getRegionName(), true);
+ admin.assign(region.getRegionName());
}
private static void closeRegionSilentlyAndWait(Configuration conf,
@@ -117,4 +117,4 @@ public class HBaseFsckRepair {
}
}
}
-}
\ No newline at end of file
+}
Modified: hbase/trunk/src/main/ruby/hbase/admin.rb
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/ruby/hbase/admin.rb?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/ruby/hbase/admin.rb (original)
+++ hbase/trunk/src/main/ruby/hbase/admin.rb Fri Sep 16 17:59:02 2011
@@ -230,8 +230,8 @@ module Hbase
#----------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------
# Assign a region
- def assign(region_name, force)
- @admin.assign(region_name.to_java_bytes,
java.lang.Boolean::valueOf(force))
+ def assign(region_name)
+ @admin.assign(region_name.to_java_bytes)
end
#----------------------------------------------------------------------------------------------
Modified: hbase/trunk/src/main/ruby/shell/commands/assign.rb
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/ruby/shell/commands/assign.rb?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/ruby/shell/commands/assign.rb (original)
+++ hbase/trunk/src/main/ruby/shell/commands/assign.rb Fri Sep 16 17:59:02 2011
@@ -23,15 +23,15 @@ module Shell
class Assign < Command
def help
return <<-EOF
-Assign a region. Add 'true' to force assign of a region. Use with caution.
-If region already assigned, this command will just go ahead and reassign
+Assign a region.Use with caution.If region already assigned,
+this command will just go ahead and reassign
the region anyways. For experts only.
EOF
end
- def command(region_name, force = 'false')
+ def command(region_name)
format_simple_command do
- admin.assign(region_name, force)
+ admin.assign(region_name)
end
end
end
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=1171697&r1=1171696&r2=1171697&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 17:59:02 2011
@@ -333,10 +333,10 @@ public class TestMasterObserver {
public boolean preMoveCalledOnly() {
return preMoveCalled && !postMoveCalled;
}
-
+
@Override
public void preAssign(ObserverContext<MasterCoprocessorEnvironment> env,
- final HRegionInfo regionInfo, final boolean force) throws IOException {
+ final HRegionInfo regionInfo) throws IOException {
if (bypass) {
env.bypass();
}
@@ -345,10 +345,10 @@ public class TestMasterObserver {
@Override
public void postAssign(ObserverContext<MasterCoprocessorEnvironment> env,
- final HRegionInfo regionInfo, final boolean force) throws IOException {
+ final HRegionInfo regionInfo) throws IOException {
postAssignCalled = true;
}
-
+
public boolean wasAssignCalled() {
return preAssignCalled && postAssignCalled;
}