[
https://issues.apache.org/jira/browse/HBASE-15338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15179245#comment-15179245
]
Jingcheng Du commented on HBASE-15338:
--------------------------------------
Sorry for late response, I thought about adding " category == BlockCategory
||".META to shouldCacheBlockOnRead(), if it is done like this, we will always
get true (if block cache is enabled) even if prefetchOnOpen is true? This is
not expected by the current implementation (without this patch)?
See the code in current implementation.
{code}
public boolean shouldCacheBlockOnRead(BlockCategory category) {
return isBlockCacheEnabled()
&& (cacheDataOnRead ||
category == BlockCategory.INDEX ||
category == BlockCategory.BLOOM ||
(prefetchOnOpen &&
(category != BlockCategory.META &&
category != BlockCategory.UNKNOWN)));
}
{code}
Do we only need to add a new method shouldCacheMetadataOnRead with a parameter
BlockCategory? and let it only be invoked by HFileReaderImpl.getMetaBlock. And
new method would look like:
{code}
public boolean shouldCacheMetadataOnRead(BlockCategory category) {
return isBlockCacheEnabled() && (cacheDataOnRead || category ==
BlockCategory.META);
}
{code}
How about this?
> Add a option to disable the data block cache for testing the performance of
> underlying file system
> --------------------------------------------------------------------------------------------------
>
> Key: HBASE-15338
> URL: https://issues.apache.org/jira/browse/HBASE-15338
> Project: HBase
> Issue Type: Improvement
> Components: integration tests
> Reporter: Liu Shaohui
> Assignee: Liu Shaohui
> Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-15338-trunk-v1.diff, HBASE-15338-trunk-v2.diff,
> HBASE-15338-trunk-v3.diff, HBASE-15338-trunk-v4.diff,
> HBASE-15338-trunk-v5.diff, HBASE-15338-trunk-v6.diff
>
>
> When testing and comparing the performance of different file systems(HDFS,
> Azure blob storage, AWS S3 and so on) for HBase, it's better to avoid the
> affect of the HBase BlockCache and get the actually random read latency when
> data block is read from underlying file system. (Usually, the index block and
> meta block should be cached in memory in the testing).
> So we add a option in CacheConfig to disable the data block cache.
> Suggestions are welcomed~ Thanks
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)