HADOOP-1723 If master asks region server to shut down, by-pass return of shutdown message

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk/src/contrib/hbase@567864 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jim Kellerman 2007-08-20 22:35:27 +00:00
parent 00c1b877e8
commit 4ebd558b41
3 changed files with 26 additions and 14 deletions

View File

@ -10,6 +10,8 @@ Trunk (unreleased changes)
OPTIMIZATIONS
BUG FIXES
HADOOP-1723 If master asks region server to shut down, by-pass return of
shutdown message
HADOOP-1729 Recent renaming or META tables breaks hbase shell
HADOOP-1730 unexpected null value causes META scanner to exit (silently)

View File

@ -579,7 +579,8 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
3 * 60 * 1000), threadWakeFrequency);
// Server
boolean masterRequestedStop = false;
try {
this.server.start();
LOG.info("HRegionServer started at: " +
@ -663,6 +664,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
if (LOG.isDebugEnabled()) {
LOG.debug("Got regionserver stop message");
}
masterRequestedStop = true;
stopRequested = true;
break;
@ -757,18 +759,20 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
LOG.error("", e);
}
try {
HMsg[] exitMsg = new HMsg[closedRegions.size() + 1];
exitMsg[0] = new HMsg(HMsg.MSG_REPORT_EXITING);
// Tell the master what regions we are/were serving
int i = 1;
for(HRegion region: closedRegions) {
exitMsg[i++] = new HMsg(HMsg.MSG_REPORT_CLOSE,
region.getRegionInfo());
}
if (!masterRequestedStop) {
HMsg[] exitMsg = new HMsg[closedRegions.size() + 1];
exitMsg[0] = new HMsg(HMsg.MSG_REPORT_EXITING);
// Tell the master what regions we are/were serving
int i = 1;
for(HRegion region: closedRegions) {
exitMsg[i++] = new HMsg(HMsg.MSG_REPORT_CLOSE,
region.getRegionInfo());
}
LOG.info("telling master that region server is shutting down at: " +
serverInfo.getServerAddress().toString());
hbaseMaster.regionServerReport(serverInfo, exitMsg);
LOG.info("telling master that region server is shutting down at: " +
serverInfo.getServerAddress().toString());
hbaseMaster.regionServerReport(serverInfo, exitMsg);
}
} catch (IOException e) {
if (e instanceof RemoteException) {
try {
@ -1124,6 +1128,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public long startUpdate(Text regionName, long clientid, Text row)
throws IOException {
requestCount.incrementAndGet();
@ -1135,6 +1140,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public void put(final Text regionName, final long clientid,
final long lockid, final Text column, final byte [] val)
throws IOException {
@ -1145,6 +1151,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public void delete(Text regionName, long clientid, long lockid, Text column)
throws IOException {
requestCount.incrementAndGet();
@ -1154,6 +1161,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public void abort(Text regionName, long clientid, long lockid)
throws IOException {
requestCount.incrementAndGet();
@ -1163,6 +1171,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public void commit(Text regionName, final long clientid, final long lockid,
final long timestamp) throws IOException {
requestCount.incrementAndGet();
@ -1172,6 +1181,7 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
}
/** {@inheritDoc} */
@SuppressWarnings("deprecation")
public void renewLease(long lockid, long clientid) throws IOException {
requestCount.incrementAndGet();
leases.renewLease(clientid, lockid);

View File

@ -60,7 +60,7 @@
</property>
<property>
<name>hbase.master.lease.period</name>
<value>5000</value>
<value>6000</value>
<description>Length of time the master will wait before timing out a region
server lease. Since region servers report in every second (see above), this
value has been reduced so that the master will notice a dead region server
@ -69,7 +69,7 @@
</property>
<property>
<name>hbase.master.lease.thread.wakefrequency</name>
<value>2500</value>
<value>3000</value>
<description>The interval between checks for expired region server leases.
This value has been reduced due to the other reduced values above so that
the master will notice a dead region server sooner. The default is 15 seconds.