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;