Author: jimk
Date: Sat Mar 7 02:00:57 2009
New Revision: 751170
URL: http://svn.apache.org/viewvc?rev=751170&view=rev
Log:
HBASE-1169 When a shutdown is requested, stop scanning META regions
immediately.
Modified:
hadoop/hbase/branches/0.19/CHANGES.txt
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/MetaScanner.java
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RegionManager.java
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RootScanner.java
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/ServerManager.java
Modified: hadoop/hbase/branches/0.19/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/CHANGES.txt?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.19/CHANGES.txt Sat Mar 7 02:00:57 2009
@@ -22,6 +22,8 @@
to compact when loaded with hundreds of regions
HBASE-1247 checkAndSave doesn't Write Ahead Log
HBASE-1243 oldlogfile.dat is screwed, so is it's region
+ HBASE-1169 When a shutdown is requested, stop scanning META regions
immediately
+
IMPROVEMENTS
HBASE-845 HCM.isTableEnabled doesn't really tell if it is, or not
Modified:
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
---
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
(original)
+++
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
Sat Mar 7 02:00:57 2009
@@ -104,7 +104,7 @@
// started here in HMaster rather than have them have to know about the
// hosting class
volatile AtomicBoolean closed = new AtomicBoolean(true);
- volatile boolean shutdownRequested = false;
+ volatile AtomicBoolean shutdownRequested = new AtomicBoolean(false);
volatile boolean fsOk = true;
final Path rootdir;
private final HBaseConfiguration conf;
@@ -334,7 +334,7 @@
*/
public HServerAddress getRootRegionLocation() {
HServerAddress rootServer = null;
- if (!shutdownRequested && !closed.get()) {
+ if (!shutdownRequested.get() && !closed.get()) {
rootServer = regionManager.getRootRegionLocation();
}
return rootServer;
@@ -364,9 +364,14 @@
try {
while (!closed.get()) {
// check if we should be shutting down
- if (shutdownRequested && serverManager.numServers() == 0) {
- startShutdown();
- break;
+ if (shutdownRequested.get()) {
+ // The region servers won't all exit until we stop scanning the
+ // meta regions
+ regionManager.stopScanners();
+ if (serverManager.numServers() == 0) {
+ startShutdown();
+ break;
+ }
}
// work on the TodoQueue. If that fails, we should shut down.
if (!processToDoQueue()) {
@@ -377,8 +382,6 @@
LOG.fatal("Unhandled exception. Starting shutdown.", t);
closed.set(true);
}
- // The region servers won't all exit until we stop scanning the meta
regions
- regionManager.stopScanners();
// Wait for all the remaining region servers to report in.
serverManager.letRegionServersShutdown();
@@ -532,7 +535,6 @@
*/
void startShutdown() {
closed.set(true);
- regionManager.stopScanners();
synchronized(toDoQueue) {
toDoQueue.clear(); // Empty the queue
delayedToDoQueue.clear(); // Empty shut down queue
@@ -592,7 +594,7 @@
public void shutdown() {
LOG.info("Cluster shutdown requested. Starting to quiesce servers");
- this.shutdownRequested = true;
+ this.shutdownRequested.set(true);
}
public void createTable(HTableDescriptor desc)
Modified:
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/MetaScanner.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/MetaScanner.java?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
---
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/MetaScanner.java
(original)
+++
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/MetaScanner.java
Sat Mar 7 02:00:57 2009
@@ -51,7 +51,7 @@
* @param master
*/
public MetaScanner(HMaster master) {
- super(master, false, master.metaRescanInterval, master.closed);
+ super(master, false, master.metaRescanInterval, master.shutdownRequested);
}
// Don't retry if we get an error while scanning. Errors are most often
Modified:
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RegionManager.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RegionManager.java?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
---
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RegionManager.java
(original)
+++
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RegionManager.java
Sat Mar 7 02:00:57 2009
@@ -159,7 +159,7 @@
void reassignRootRegion() {
unsetRootRegion();
- if (!master.shutdownRequested) {
+ if (!master.shutdownRequested.get()) {
synchronized (regionsInTransition) {
RegionState s = new RegionState(HRegionInfo.ROOT_REGIONINFO);
s.setUnassigned();
Modified:
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RootScanner.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RootScanner.java?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
---
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RootScanner.java
(original)
+++
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/RootScanner.java
Sat Mar 7 02:00:57 2009
@@ -32,7 +32,7 @@
* @param master
*/
public RootScanner(HMaster master) {
- super(master, true, master.metaRescanInterval, master.closed);
+ super(master, true, master.metaRescanInterval, master.shutdownRequested);
}
/*
Modified:
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/ServerManager.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=751170&r1=751169&r2=751170&view=diff
==============================================================================
---
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/ServerManager.java
(original)
+++
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/ServerManager.java
Sat Mar 7 02:00:57 2009
@@ -240,7 +240,7 @@
}
}
- if (master.shutdownRequested) {
+ if (master.shutdownRequested.get()) {
if(quiescedServers.get() >= serversToServerInfo.size()) {
// If the only servers we know about are meta servers, then we can
// proceed with shutdown