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:40:04 UTC
svn commit: r934231 - in /hadoop/hbase/trunk: CHANGES.txt
core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
Author: stack
Date: Wed Apr 14 22:40:04 2010
New Revision: 934231
URL: http://svn.apache.org/viewvc?rev=934231&view=rev
Log:
HBASE-2439 HBase can get stuck if updates to META are blocked
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=934231&r1=934230&r2=934231&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Apr 14 22:40:04 2010
@@ -269,6 +269,8 @@ Release 0.21.0 - Unreleased
HBASE-2346 Usage of FilterList slows down scans
HBASE-2341 ZK settings for initLimit/syncLimit should not have been removed
from hbase-default.xml
+ HBASE-2439 HBase can get stuck if updates to META are blocked
+ (Kannan Muthukkaruppan via Stack)
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
Modified: hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=934231&r1=934230&r2=934231&view=diff
==============================================================================
--- hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Apr 14 22:40:04 2010
@@ -1444,6 +1444,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/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java?rev=934231&r1=934230&r2=934231&view=diff
==============================================================================
--- hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (original)
+++ hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java Wed Apr 14 22:40:04 2010
@@ -221,7 +221,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());