From bfde8b71d57279678c94111a46c6554da9aa5b3a Mon Sep 17 00:00:00 2001 From: chenheng Date: Fri, 1 Jul 2016 11:13:25 +0800 Subject: [PATCH] HBASE-15844 We should respect hfile.block.index.cacheonwrite when write intermediate index Block --- .../java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java index 76fec06..66968e0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java @@ -1072,6 +1072,11 @@ public class HFileBlockIndex { if (midKeyMetadata != null) blockStream.write(midKeyMetadata); blockWriter.writeHeaderAndData(out); + if (cacheConf != null) { + HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf); + cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching, + rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching); + } } // Add root index block size @@ -1167,7 +1172,7 @@ public class HFileBlockIndex { byte[] curFirstKey = curChunk.getBlockKey(0); blockWriter.writeHeaderAndData(out); - if (cacheConf != null) { + if (getCacheOnWrite()) { HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf); cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()), blockForCaching); -- 1.9.3 (Apple Git-50)