You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Hudson (Jira)" <ji...@apache.org> on 2020/08/22 12:58:00 UTC

[jira] [Commented] (HBASE-24915) Improve BlockCache read performance by specifying BlockType

    [ https://issues.apache.org/jira/browse/HBASE-24915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17182356#comment-17182356 ] 

Hudson commented on HBASE-24915:
--------------------------------

Results for branch master
	[build #14 on builds.a.o|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/master/14/]: (x) *{color:red}-1 overall{color}*
----
details (if available):

(/) {color:green}+1 general checks{color}
-- For more information [see general report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/master/14/General_20Nightly_20Build_20Report/]






(x) {color:red}-1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/master/14/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/master/14/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 source release artifact{color}
-- See build output for details.


(x) {color:red}-1 client integration test{color}
--Failed when running client tests on top of Hadoop 2. [see log for details|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/master/14//artifact/output-integration/hadoop-2.log]. (note that this means we didn't run on Hadoop 3)


> Improve BlockCache read performance by specifying BlockType
> -----------------------------------------------------------
>
>                 Key: HBASE-24915
>                 URL: https://issues.apache.org/jira/browse/HBASE-24915
>             Project: HBase
>          Issue Type: Improvement
>          Components: BlockCache, Performance
>            Reporter: fanrui
>            Assignee: fanrui
>            Priority: Major
>
> CombinedBlockCache contains l1Cache and l2Cache. l1Cache stores MetaBlock and l2Cache stores DataBlock. Because getBlock does not know the BlockType, the getBlock of CombinedBlockCache queries l1Cache first, and then l2Cache. But actually querying DataBlock is not necessary to query l1Cache. 
> Therefore, in some cases where BlockType is known, BlockCache read performance can be improved.
> h2.  Codeļ¼š
>  BlockCache: default call old getBlock
> {code:java}
> default Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,
>     boolean updateCacheMetrics, BlockType blockType) {
>   return getBlock(cacheKey, caching, repeat, updateCacheMetrics);
> }
> {code}
> CombinedBlockCache:
> {code:java}
> @Override
> public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,
>     boolean updateCacheMetrics, BlockType blockType) {
>   if (blockType == null) {
>     return getBlock(cacheKey, caching, repeat, updateCacheMetrics);
>   }
>   boolean metaBlock = isMetaBlock(blockType);
>   if (metaBlock) {
>     return l1Cache.getBlock(cacheKey, caching, repeat, updateCacheMetrics);
>   } else {
>     return l2Cache.getBlock(cacheKey, caching, repeat, updateCacheMetrics);
>   }
> }private boolean isMetaBlock(BlockType blockType) {
>   return blockType.getCategory() != BlockCategory.DATA;
> }
> {code}
> HFileReaderImpl#getCachedBlock call BlockCache#getBlock(XXX, expectedBlockType)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)