Author: stack
Date: Wed Jul 29 23:07:48 2009
New Revision: 799117
URL: http://svn.apache.org/viewvc?rev=799117&view=rev
Log:
HBASE-1534 Got ZooKeeper event, state: Disconnected on HRS and then NPE on
reinit
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Jul 29 23:07:48 2009
@@ -304,6 +304,8 @@
data to be used
HBASE-1573 Holes in master state change; updated startcode and server
go into .META. but catalog scanner just got old values (redux)
+ HBASE-1534 Got ZooKeeper event, state: Disconnected on HRS and then NPE
+ on reinit
IMPROVEMENTS
HBASE-1089 Add count of regions on filesystem to master UI; add percentage
Modified:
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
---
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
(original)
+++
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
Wed Jul 29 23:07:48 2009
@@ -240,10 +240,9 @@
int nRegionsToAssign = regionsToAssign.size();
int nregions = regionsPerServer(nRegionsToAssign, thisServersLoad);
- LOG.debug("multi assing for " + info + ": nregions to assign: "
- + nRegionsToAssign
- +" and nregions: " + nregions
- + " metaAssign: " + isMetaAssign);
+ LOG.debug("Assigning for " + info + ": total nregions to assign=" +
+ nRegionsToAssign + ", nregions to reach balance=" + nregions +
+ ", isMetaAssign=" + isMetaAssign);
nRegionsToAssign -= nregions;
if (nRegionsToAssign > 0 || isMetaAssign) {
// We still have more regions to assign. See how many we can assign
Modified:
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
---
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
(original)
+++
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
Wed Jul 29 23:07:48 2009
@@ -417,7 +417,17 @@
regionServerThread = Thread.currentThread();
boolean quiesceRequested = false;
try {
- init(reportForDuty());
+ MapWritable w = null;
+ while (!stopRequested.get()) {
+ w = reportForDuty();
+ if (w != null) {
+ init(w);
+ break;
+ }
+ sleeper.sleep();
+ LOG.warn("No response from master on reportForDuty. Sleeping and " +
+ "then trying again.");
+ }
long lastMsg = 0;
// Now ask master what it wants us to do and tell it what we have done
for (int tries = 0; !stopRequested.get() && isHealthy();) {
Modified:
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
(original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
Wed Jul 29 23:07:48 2009
@@ -295,6 +295,7 @@
// TODO: This could grow large and blow heap out. Need to get it into
// general memory usage accounting.
long maxSeqIdInLog = -1;
+ long firstSeqIdInLog = -1;
// TODO: Move this memstoring over into MemStore.
KeyValueSkipListSet reconstructedCache =
new KeyValueSkipListSet(this.comparator);
@@ -309,6 +310,9 @@
int reportInterval =
this.conf.getInt("hbase.hstore.report.interval.edits", 2000);
while (logReader.next(key, val)) {
+ if (firstSeqIdInLog == -1) {
+ firstSeqIdInLog = key.getLogSeqNum();
+ }
maxSeqIdInLog = Math.max(maxSeqIdInLog, key.getLogSeqNum());
if (key.getLogSeqNum() <= maxSeqID) {
skippedEdits++;
@@ -335,7 +339,9 @@
}
if (LOG.isDebugEnabled()) {
LOG.debug("Applied " + editsCount + ", skipped " + skippedEdits +
- " because sequence id <= " + maxSeqID);
+ "; store maxSeqID=" + maxSeqID +
+ ", firstSeqIdInLog=" + firstSeqIdInLog +
+ ", maxSeqIdInLog=" + maxSeqIdInLog);
}
} finally {
logReader.close();