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 2009/07/02 01:57:40 UTC

svn commit: r790424 - in /hadoop/hbase/trunk: ./ src/java/org/apache/hadoop/hbase/io/hfile/ src/java/org/apache/hadoop/hbase/regionserver/

Author: stack
Date: Wed Jul  1 23:57:40 2009
New Revision: 790424

URL: http://svn.apache.org/viewvc?rev=790424&view=rev
Log:
HBASE-1602 HRegionServer won't go down since we added in new LruBlockCache

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=790424&r1=790423&r2=790424&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Jul  1 23:57:40 2009
@@ -239,6 +239,7 @@
                interface
    HBASE-1594  Fix scan addcolumns after hbase-1385 commit (broken hudson build)
    HBASE-1595  hadoop-default.xml and zoo.cfg in hbase jar
+   HBASE-1602  HRegionServer won't go down since we added in new LruBlockCache
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java?rev=790424&r1=790423&r2=790424&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/BlockCache.java Wed Jul  1 23:57:40 2009
@@ -46,5 +46,10 @@
    * @param blockName Block number to fetch.
    * @return Block or null if block is not in the cache.
    */
-  public ByteBuffer getBlock(String blockName);  
+  public ByteBuffer getBlock(String blockName);
+
+  /**
+   * Shutdown the cache.
+   */
+  public void shutdown();
 }
\ No newline at end of file

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java?rev=790424&r1=790423&r2=790424&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java Wed Jul  1 23:57:40 2009
@@ -22,12 +22,12 @@
 import java.lang.ref.WeakReference;
 import java.nio.ByteBuffer;
 import java.util.PriorityQueue;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.ReentrantLock;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -108,7 +108,7 @@
   private final EvictionThread evictionThread;
   
   /** Statistics thread schedule pool (for heavy debugging, could remove) */
-  private final ScheduledExecutorService scheduleThreadPool = 
+  private final ScheduledExecutorService scheduleThreadPool =
     Executors.newScheduledThreadPool(1);
   
   /** Current size of cache */
@@ -320,7 +320,7 @@
       
       long bytesToFree = size.get() - minSize();
       
-      LOG.info("Block cache LRU eviction started.  Attempting to free " + 
+      LOG.debug("Block cache LRU eviction started.  Attempting to free " + 
           bytesToFree + " bytes");
       
       if(bytesToFree <= 0) return;
@@ -372,7 +372,7 @@
         remainingBuckets--;
       }
       
-      LOG.info("Block cache LRU eviction completed. " + 
+      LOG.debug("Block cache LRU eviction completed. " + 
           "Freed " + bytesFreed + " bytes");
       
     } finally {
@@ -659,5 +659,8 @@
   private long memorySize() {
     return (long)Math.floor(this.maxSize * this.memoryFactor * this.minFactor);
   }
-  
+
+  public void shutdown() {
+    this.scheduleThreadPool.shutdown();
+  }
 }

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java?rev=790424&r1=790423&r2=790424&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/hfile/SimpleBlockCache.java Wed Jul  1 23:57:40 2009
@@ -63,4 +63,8 @@
       boolean inMemory) {
     cache.put(blockName, new Ref(blockName, buf, q));
   }
+
+  public void shutdown() {
+    // noop
+  }
 }

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=790424&r1=790423&r2=790424&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  1 23:57:40 2009
@@ -602,6 +602,9 @@
         e.printStackTrace();
       }
     }
+    // Send cache a shutdown.
+    LruBlockCache c = (LruBlockCache)StoreFile.getBlockCache(this.conf);
+    if (c != null) c.shutdown();
 
     // Send interrupts to wake up threads if sleeping so they notice shutdown.
     // TODO: Should we check they are alive?  If OOME could have exited already