You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2012/01/05 00:46:48 UTC
svn commit: r1227399 -
/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java
Author: nspiegelberg
Date: Wed Jan 4 23:46:48 2012
New Revision: 1227399
URL: http://svn.apache.org/viewvc?rev=1227399&view=rev
Log:
[master] BaseScanner only reads favored nodes if enabled
Summary:
If the cluster is not balancing regions using the assignment load
balancer, then the base scanner should also not read the favored node
hints from META.
Test Plan: Run on a cluster
Reviewers: kranganathan, liyintang
Reviewed By: kranganathan
CC: hbase-eng@lists, kranganathan
Differential Revision: 379825
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java?rev=1227399&r1=1227398&r2=1227399&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/BaseScanner.java Wed Jan 4 23:46:48 2012
@@ -120,6 +120,7 @@ abstract class BaseScanner extends Chore
}
}
private final boolean rootRegion;
+ private final boolean readFavoredNodes;
protected final HMaster master;
protected boolean initialScanComplete;
@@ -139,6 +140,11 @@ abstract class BaseScanner extends Chore
this.rootRegion = rootRegion;
this.master = master;
this.initialScanComplete = false;
+
+ // Only read favored nodes if using the assignment-based load balancer.
+ this.readFavoredNodes = master.getConfiguration().getClass(
+ HConstants.LOAD_BALANCER_IMPL, Object.class).equals(
+ RegionManager.AssignmentLoadBalancer.class);
}
/** @return true if initial scan completed successfully */
@@ -199,18 +205,20 @@ abstract class BaseScanner extends Chore
}
rows += 1;
- byte[] favoredNodes = values.getValue(HConstants.CATALOG_FAMILY,
- HConstants.FAVOREDNODES_QUALIFIER);
- if (favoredNodes != null) {
- List<HServerAddress> addresses = new ArrayList<HServerAddress>();
- for (String address : new String(favoredNodes).split(",")) {
- addresses.add(new HServerAddress(address));
+ if (this.readFavoredNodes) {
+ byte[] favoredNodes = values.getValue(HConstants.CATALOG_FAMILY,
+ HConstants.FAVOREDNODES_QUALIFIER);
+ if (favoredNodes != null) {
+ List<HServerAddress> addresses = new ArrayList<HServerAddress>();
+ for (String address : new String(favoredNodes).split(",")) {
+ addresses.add(new HServerAddress(address));
+ }
+ this.master.getRegionManager().assignmentManager
+ .addPersistentAssignment(info, addresses);
+ } else {
+ this.master.getRegionManager().assignmentManager
+ .removePersistentAssignment(info);
}
- this.master.getRegionManager().assignmentManager
- .addPersistentAssignment(info, addresses);
- } else {
- this.master.getRegionManager().assignmentManager
- .removePersistentAssignment(info);
}
}
if (rootRegion) {