Author: stack
Date: Wed Sep 22 18:42:41 2010
New Revision: 1000133
URL: http://svn.apache.org/viewvc?rev=1000133&view=rev
Log:
HBASE-3026 Fixup of missing daughters on split is too aggressive
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
Modified: hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1000133&r1=1000132&r2=1000133&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Sep 22 18:42:41 2010
@@ -534,6 +534,7 @@ Release 0.21.0 - Unreleased
servers assigning in bulk to one at a time
HBASE-3023 NPE processing server crash in MetaReader. getServerUserRegions
HBASE-3024 NPE processing server crash in MetaEditor.addDaughter
+ HBASE-3026 Fixup of "missing" daughters on split is too aggressive
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1000133&r1=1000132&r2=1000133&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
Wed Sep 22 18:42:41 2010
@@ -486,7 +486,6 @@ public class AssignmentManager extends Z
* @param regionName server to be assigned
*/
public void assign(HRegionInfo region) {
- LOG.debug("Starting assignment for region " +
region.getRegionNameAsString());
// Grab the state of this region and synchronize on it
String encodedName = region.getEncodedName();
RegionState state;
@@ -546,6 +545,9 @@ public class AssignmentManager extends Z
}
}
try {
+ LOG.debug("Assigning region " +
+ state.getRegion().getRegionNameAsString() + " to " +
+ plan.getDestination().getServerName());
// Send OPEN RPC. This can fail if the server on other end is is not up.
serverManager.sendRegionOpen(plan.getDestination(), state.getRegion());
// Transition RegionState to PENDING_OPEN
@@ -726,7 +728,6 @@ public class AssignmentManager extends Z
// regionsInTransition timing out. Currently its not possible given the
// Executor architecture on the regionserver side. St.Ack 20100920.
for (HRegionInfo region : regions) {
- LOG.debug("Assigning " + region.getRegionNameAsString() + " to " +
this.server);
regionPlans.put(region.getEncodedName(), new RegionPlan(region, null,
server));
assign(region);
if (this.stopper.isStopped()) break;
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=1000133&r1=1000132&r2=1000133&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 Wed
Sep 22 18:42:41 2010
@@ -563,7 +563,8 @@ implements HMasterInterface, HMasterRegi
// Only allow one balance run at at time.
if (this.assignmentManager.isRegionsInTransition()) {
LOG.debug("Not running balancer because regions in transition: " +
- this.assignmentManager.getRegionsInTransition());
+ org.apache.commons.lang.StringUtils.
+
abbreviate(this.assignmentManager.getRegionsInTransition().toString(), 64));
return false;
}
if (!this.serverManager.getDeadServers().isEmpty()) {
@@ -582,7 +583,7 @@ implements HMasterInterface, HMasterRegi
List<RegionPlan> plans = this.balancer.balanceCluster(assignments);
if (plans != null && !plans.isEmpty()) {
for (RegionPlan plan: plans) {
- LOG.info("balance=" + plan);
+ LOG.info("balance " + plan);
this.assignmentManager.balance(plan);
}
}
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java?rev=1000133&r1=1000132&r2=1000133&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java
Wed Sep 22 18:42:41 2010
@@ -27,6 +27,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HServerAddress;
import org.apache.hadoop.hbase.HServerInfo;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.catalog.MetaEditor;
@@ -106,7 +107,7 @@ public class ServerShutdownHandler exten
NavigableMap<HRegionInfo, Result> hris =
MetaReader.getServerUserRegions(this.server.getCatalogTracker(),
this.hsi);
LOG.info("Reassigning the " + hris.size() + " region(s) that " +
serverName +
- " was carrying.");
+ " was carrying");
// We should encounter -ROOT- and .META. first in the Set given how its
// a sorted set.
@@ -151,10 +152,12 @@ public class ServerShutdownHandler exten
byte [] bytes = result.getValue(HConstants.CATALOG_FAMILY, qualifier);
if (bytes == null || bytes.length <= 0) return;
HRegionInfo hri = Writables.getHRegionInfo(bytes);
- if (!hris.containsKey(hri)) {
+ Pair<HRegionInfo, HServerAddress> pair =
+ MetaReader.getRegion(this.server.getCatalogTracker(),
hri.getRegionName());
+ if (pair == null || pair.getFirst() == null) {
LOG.info("Fixup; missing daughter " + hri.getEncodedName());
MetaEditor.addDaughter(this.server.getCatalogTracker(), hri, null);
this.services.getAssignmentManager().assign(hri);
}
}
-}
\ No newline at end of file
+}