diff --git a/hbase-common/src/main/resources/hbase-default.xml b/hbase-common/src/main/resources/hbase-default.xml
index a4e6578d89e..7b718962633 100644
--- a/hbase-common/src/main/resources/hbase-default.xml
+++ b/hbase-common/src/main/resources/hbase-default.xml
@@ -1063,15 +1063,6 @@ possible configurations would overwhelm and obscure the important.
falseUse Thrift TCompactProtocol binary serialization protocol.
-
- hbase.offheapcache.percentage
- 0
- The percentage of the off heap space (-XX:MaxDirectMemorySize) to be
- allocated towards the experimental off heap "SlabCache" (This is different to
- the BucketCache -- see the package javadoc for org.apache.hadoop.hbase.io.hfile
- for more on your options). If you desire the cache to be disabled, simply set this
- value to 0.
- hbase.data.umask.enablefalse
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
index b8dd80ee09b..82bbeee2e9a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
@@ -111,7 +111,6 @@ public class CacheConfig {
public static final boolean DEFAULT_BUCKET_CACHE_COMBINED = true;
public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;
public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;
- public static final float DEFAULT_BUCKET_CACHE_COMBINED_PERCENTAGE = 0.9f;
/**
* Configuration key to prefetch all blocks of a given file into the block cache
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableSnapshotInputFormat.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableSnapshotInputFormat.java
index fb13d703b49..9fb83e13c8d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableSnapshotInputFormat.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableSnapshotInputFormat.java
@@ -115,9 +115,6 @@ public class TestTableSnapshotInputFormat extends TableSnapshotInputFormatTestBa
"Snapshot job should be configured for default LruBlockCache.",
HConstants.HFILE_BLOCK_CACHE_SIZE_DEFAULT,
job.getFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY, -1), 0.01);
- Assert.assertEquals(
- "Snapshot job should not use SlabCache.",
- 0, job.getFloat("hbase.offheapcache.percentage", -1), 0.01);
Assert.assertEquals(
"Snapshot job should not use BucketCache.",
0, job.getFloat("hbase.bucketcache.size", -1), 0.01);
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.java
index 9e7102d24cc..ea238895380 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableSnapshotInputFormat.java
@@ -162,9 +162,6 @@ public class TestTableSnapshotInputFormat extends TableSnapshotInputFormatTestBa
"Snapshot job should be configured for default LruBlockCache.",
HConstants.HFILE_BLOCK_CACHE_SIZE_DEFAULT,
job.getConfiguration().getFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY, -1), 0.01);
- Assert.assertEquals(
- "Snapshot job should not use SlabCache.",
- 0, job.getConfiguration().getFloat("hbase.offheapcache.percentage", -1), 0.01);
Assert.assertEquals(
"Snapshot job should not use BucketCache.",
0, job.getConfiguration().getFloat("hbase.bucketcache.size", -1), 0.01);
diff --git a/src/main/docbkx/book.xml b/src/main/docbkx/book.xml
index 603839ccd89..e585adced64 100644
--- a/src/main/docbkx/book.xml
+++ b/src/main/docbkx/book.xml
@@ -2082,8 +2082,8 @@ rs.close();
xml:id="block.cache">
Block Cache
- HBase provides three different BlockCache implementations: the default onheap
- LruBlockCache, BucketCache, and SlabCache, which are both (usually) offheap. This section
+ HBase provides two different BlockCache implementations: the default onheap
+ LruBlockCache and BucketCache, which is (usually) offheap. This section
discusses benefits and drawbacks of each implementation, how to choose the appropriate
option, and configuration options for each.
@@ -2099,9 +2099,7 @@ rs.close();
LruBlockCache is the original implementation, and is
entirely within the Java heap. BucketCache is mainly
intended for keeping blockcache data offheap, although BucketCache can also
- keep data onheap and serve from a file-backed cache. There is also an older
- offheap BlockCache, called SlabCache that has since been deprecated and
- removed in HBase 1.0.
+ keep data onheap and serve from a file-backed cache.
Fetching will always be slower when fetching from BucketCache,
@@ -2292,30 +2290,6 @@ rs.close();
Offheap Block Cache
-
- How to Enable SlabCache
- SlabCache is deprecated and will be removed in 1.0!
- SlabCache is originally described in Caching
- in Apache HBase: SlabCache. Quoting from the API documentation for DoubleBlockCache,
- the hosting class for SlabCache deploys,
- DoubleBlockCache is an abstraction layer that combines two caches, the smaller onHeapCache and the
- larger offHeapCache. CacheBlock attempts to cache the block in both caches, while
- readblock reads first from the faster on heap cache before looking for the block in
- the off heap cache. Metrics are the combined size and hits and misses of both
- caches.
- To enable SlabCache, set the float
- hbase.offheapcache.percentage to some value between 0 and 1 in
- the hbase-site.xml file on the RegionServer. The value will be multiplied by the
- setting for -XX:MaxDirectMemorySize in the RegionServer's
- hbase-env.sh configuration file and the result is used by
- SlabCache as its offheap store. The onheap store will be the value of the float
- HConstants.HFILE_BLOCK_CACHE_SIZE_KEY setting (some value between
- 0 and 1) multiplied by the size of the allocated Java heap.
- Restart (or rolling restart) your cluster for the configurations to take effect.
- Check logs for errors or unexpected behavior.
- How to Enable BucketCacheThe usual deploy of BucketCache is via a managing class that sets up two caching tiers: an L1 onheap cache
diff --git a/src/main/docbkx/upgrading.xml b/src/main/docbkx/upgrading.xml
index 23c3636c44b..ca7a9862219 100644
--- a/src/main/docbkx/upgrading.xml
+++ b/src/main/docbkx/upgrading.xml
@@ -428,27 +428,6 @@ Successfully completed Log splitting
setup a secure HBase is on the way.
-
- Experimental off-heap cache: SlabCache
- A new cache was contributed to 0.92.0 to act as a solution between using the
- “on-heap” cache which is the current LRU cache the region servers have and the
- operating system cache which is out of our control. To enable
- SlabCache, as this feature is being called, set
- “-XX:MaxDirectMemorySize” in hbase-env.sh to the value for maximum direct memory
- size and specify hbase.offheapcache.percentage in
- hbase-site.xml with the percentage that you want to
- dedicate to off-heap cache. This should only be set for servers and not for clients.
- Use at your own risk. See this blog post, Caching
- in Apache HBase: SlabCache, for additional information on this new
- experimental feature.
- This feature has mostly been eclipsed in later HBases. See HBASE-7404 Bucket
- Cache:A solution about CMS,Heap Fragment and Big Cache on HBASE,
- etc.
-
-
Changes in HBase replication 0.92.0 adds two new features: multi-slave and multi-master replication. The way to