You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/04/15 00:34:38 UTC
svn commit: r934228 - in /hadoop/hbase/branches/0.20: CHANGES.txt
src/java/org/apache/hadoop/hbase/HTableDescriptor.java
src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
Author: stack
Date: Wed Apr 14 22:34:38 2010
New Revision: 934228
URL: http://svn.apache.org/viewvc?rev=934228&view=rev
Log:
HBASE-2439 HBase can get stuck if updates to META are blocked
Modified:
hadoop/hbase/branches/0.20/CHANGES.txt
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/HTableDescriptor.java
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=934228&r1=934227&r2=934228&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Wed Apr 14 22:34:38 2010
@@ -80,6 +80,8 @@ Release 0.20.4 - Unreleased
HBASE-2341 ZK settings for initLimit/syncLimit should not have been removed
from hbase-default.xml
HBASE-2383 Replace JSON-licensed json dependencies
+ HBASE-2439 HBase can get stuck if updates to META are blocked
+ (Kannan Muthukkaruppan via Stack)
IMPROVEMENTS
HBASE-2180 Bad read performance from synchronizing hfile.fddatainputstream
Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/HTableDescriptor.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/HTableDescriptor.java?rev=934228&r1=934227&r2=934228&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/HTableDescriptor.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/HTableDescriptor.java Wed Apr 14 22:34:38 2010
@@ -112,7 +112,6 @@ ISerializable {
for(HColumnDescriptor descriptor : families) {
this.families.put(descriptor.getName(), descriptor);
}
- setMemStoreFlushSize(16 * 1024);
}
/**
Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=934228&r1=934227&r2=934228&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Apr 14 22:34:38 2010
@@ -1492,6 +1492,10 @@ public class HRegion implements HConstan
* the notify.
*/
private void checkResources() {
+
+ // If catalog region, do not impose resource constraints or block updates.
+ if (this.getRegionInfo().isMetaRegion()) return;
+
boolean blocked = false;
while (this.memstoreSize.get() > this.blockingMemStoreSize) {
requestFlush();
Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java?rev=934228&r1=934227&r2=934228&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java Wed Apr 14 22:34:38 2010
@@ -228,7 +228,10 @@ class MemStoreFlusher extends Thread imp
// queue if there's too many files.
if (removeFromQueue) {
checkStoreFileCount(region);
- } else if (isTooManyStoreFiles(region)) {
+ } else if ((!region.getRegionInfo().isMetaRegion()) &&
+ isTooManyStoreFiles(region)) {
+ // Note: We don't impose blockingStoreFiles constraint on meta regions
+
LOG.warn("Region " + region.getRegionNameAsString() + " has too many " +
"store files, putting it back at the end of the flush queue.");
server.compactSplitThread.compactionRequested(region, getName());