Author: apurtell Date: Fri Dec 4 04:33:30 2009 New Revision: 887055 URL: http://svn.apache.org/viewvc?rev=887055&view=rev Log: HBASE-2018 Updates to .META. blocked under high MemStore load
Modified: hadoop/hbase/branches/0.20/CHANGES.txt hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Modified: hadoop/hbase/branches/0.20/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=887055&r1=887054&r2=887055&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/CHANGES.txt (original) +++ hadoop/hbase/branches/0.20/CHANGES.txt Fri Dec 4 04:33:30 2009 @@ -4,25 +4,26 @@ INCOMPATIBLE CHANGES BUG FIXES - HBASE-1999 When HTable goes away, close zk session in shutdown hook or - something... - HBASE-1997 zk tick time bounds maximum zk session time - HBASE-1979 MurmurHash does not yield the same results as the reference - C++ implementation when size % 4 >= 2 (Olivier Gillet via Stack) + HBASE-1999 When HTable goes away, close zk session in shutdown hook or + something... + HBASE-1997 zk tick time bounds maximum zk session time + HBASE-1979 MurmurHash does not yield the same results as the reference + C++ implementation when size % 4 >= 2 (Olivier Gillet via Stack) IMPROVEMENTS - HBASE-1961 HBase EC2 scripts - HBASE-1970 Export does one version only; make it configurable how many - it does - HBASE-1975 SingleColumnValueFilter: Add ability to match the value of - previous versions of the specified column - (Jeremiah Jacquet via Stack) - HBASE-1987 The Put object has no simple read methods for checking what - has already been added (Ryan Smith via Stack) - HBASE-2009 [EC2] Support mapreduce - HBASE-2012 [EC2] LZO support - HBASE-2011 Add zktop like output to HBase's master UI (Lars George via - Andrew Purtell) + HBASE-1961 HBase EC2 scripts + HBASE-1970 Export does one version only; make it configurable how many + it does + HBASE-1975 SingleColumnValueFilter: Add ability to match the value of + previous versions of the specified column + (Jeremiah Jacquet via Stack) + HBASE-1987 The Put object has no simple read methods for checking what + has already been added (Ryan Smith via Stack) + HBASE-2009 [EC2] Support mapreduce + HBASE-2012 [EC2] LZO support + HBASE-2011 Add zktop like output to HBase's master UI (Lars George via + Andrew Purtell) + HBASE-2018 Updates to .META. blocked under high MemStore load Release 0.20.2 - November 18th, 2009 INCOMPATIBLE CHANGES Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=887055&r1=887054&r2=887055&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original) +++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Fri Dec 4 04:33:30 2009 @@ -1812,7 +1812,9 @@ this.requestCount.incrementAndGet(); HRegion region = getRegion(regionName); try { - cacheFlusher.reclaimMemStoreMemory(); + if (!region.getRegionInfo().isMetaTable()) { + this.cacheFlusher.reclaimMemStoreMemory(); + } region.put(put, getLockFromId(put.getLockId())); } catch (Throwable t) { throw convertThrowableToIOE(cleanup(t)); @@ -1826,7 +1828,9 @@ checkOpen(); try { HRegion region = getRegion(regionName); - this.cacheFlusher.reclaimMemStoreMemory(); + if (!region.getRegionInfo().isMetaTable()) { + this.cacheFlusher.reclaimMemStoreMemory(); + } Integer[] locks = new Integer[puts.length]; for (i = 0; i < puts.length; i++) { this.requestCount.incrementAndGet(); @@ -1867,7 +1871,9 @@ this.requestCount.incrementAndGet(); HRegion region = getRegion(regionName); try { - cacheFlusher.reclaimMemStoreMemory(); + if (!region.getRegionInfo().isMetaTable()) { + this.cacheFlusher.reclaimMemStoreMemory(); + } return region.checkAndPut(row, family, qualifier, value, put, getLockFromId(put.getLockId()), true); } catch (Throwable t) { @@ -2019,10 +2025,12 @@ checkOpen(); try { boolean writeToWAL = true; - this.cacheFlusher.reclaimMemStoreMemory(); this.requestCount.incrementAndGet(); - Integer lid = getLockFromId(delete.getLockId()); HRegion region = getRegion(regionName); + if (!region.getRegionInfo().isMetaTable()) { + this.cacheFlusher.reclaimMemStoreMemory(); + } + Integer lid = getLockFromId(delete.getLockId()); region.delete(delete, lid, writeToWAL); } catch (Throwable t) { throw convertThrowableToIOE(cleanup(t)); @@ -2036,9 +2044,11 @@ checkOpen(); try { boolean writeToWAL = true; - this.cacheFlusher.reclaimMemStoreMemory(); - Integer[] locks = new Integer[deletes.length]; HRegion region = getRegion(regionName); + if (!region.getRegionInfo().isMetaTable()) { + this.cacheFlusher.reclaimMemStoreMemory(); + } + Integer[] locks = new Integer[deletes.length]; for (i = 0; i < deletes.length; i++) { this.requestCount.incrementAndGet(); locks[i] = getLockFromId(deletes[i].getLockId());