You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2011/09/19 22:29:40 UTC

svn commit: r1172802 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java

Author: tedyu
Date: Mon Sep 19 20:29:40 2011
New Revision: 1172802

URL: http://svn.apache.org/viewvc?rev=1172802&view=rev
Log:
HBASE-4432  Enable/Disable off heap cache with config (Li Pi)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1172802&r1=1172801&r2=1172802&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Mon Sep 19 20:29:40 2011
@@ -513,6 +513,7 @@ Release 0.91.0 - Unreleased
                (David Revell)
    HBASE-4424  Provide coprocessors access to createTable() via 
                MasterServices
+   HBASE-4432  Enable/Disable off heap cache with config (Li Pi)
 
   TASKS
    HBASE-3559  Move report of split to master OFF the heartbeat channel

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java?rev=1172802&r1=1172801&r2=1172802&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java Mon Sep 19 20:29:40 2011
@@ -378,12 +378,18 @@ public class StoreFile {
     MemoryUsage mu = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
     long cacheSize = (long)(mu.getMax() * cachePercentage);
     int blockSize = conf.getInt("hbase.offheapcache.minblocksize", HFile.DEFAULT_BLOCKSIZE);
-    long offHeapCacheSize = (long) (conf.getFloat("hbase.offheapcache.percentage", (float) 0.95) * DirectMemoryUtils.getDirectMemorySize());
+    boolean enableOffHeapCache = conf.getBoolean("hbase.offheapcache.enable", false);
+    long offHeapCacheSize = enableOffHeapCache ?
+      (long) (conf.getFloat("hbase.offheapcache.percentage",
+          (float) 0.95) * DirectMemoryUtils.getDirectMemorySize()) :
+      0;
     LOG.info("Allocating LruBlockCache with maximum size " +
       StringUtils.humanReadableInt(cacheSize));
     if(offHeapCacheSize <= 0) {
       hfileBlockCache = new LruBlockCache(cacheSize, DEFAULT_BLOCKSIZE_SMALL);
     } else {
+      LOG.info("Allocating OffHeapCache with maximum size " +
+          StringUtils.humanReadableInt(offHeapCacheSize));
       hfileBlockCache = new DoubleBlockCache(cacheSize, offHeapCacheSize, DEFAULT_BLOCKSIZE_SMALL, blockSize, conf);
     }
     return hfileBlockCache;