You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2016/02/26 10:02:18 UTC

[jira] [Comment Edited] (HBASE-15338) Add a option to disable the data block cache for testing the performance of underlying file system

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

Anoop Sam John edited comment on HBASE-15338 at 2/26/16 9:01 AM:
-----------------------------------------------------------------

Again am missing some thing
{code}
-        family.isBlockCacheEnabled(),
+        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)
+           && family.isBlockCacheEnabled(),
{code}
Why we need this new config?  Why can not we rely on HCD setting?  
{code}
/**
   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always
   * cache the meta blocks, the INDEX and BLOOM blocks).
   * @return true if blocks should be cached on read, false if not
   */
  public boolean shouldCacheDataOnRead() {
    return isBlockCacheEnabled() && cacheDataOnRead;
  }
{code}
This may be the issue you are saying?  This is called from getMetaBlock().  As per the comment, when we read meta blocks, we must cache it.  As we do not pass any type we seems may not do that..  That is a bug IMO..    So we better correct that bug (Any other?)   and test ur case with HCD setting?

And ya as per Jingcheng suggestion, we need consider META block category as well? This is considered with prefetch only now.. Need to read code more..


was (Author: anoop.hbase):
Again am missing some thing
-        family.isBlockCacheEnabled(),
+        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)
+           && family.isBlockCacheEnabled(),

Why we need this new config?  Why can not we rely on HCD setting?  
{code}
/**
   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always
   * cache the meta blocks, the INDEX and BLOOM blocks).
   * @return true if blocks should be cached on read, false if not
   */
  public boolean shouldCacheDataOnRead() {
    return isBlockCacheEnabled() && cacheDataOnRead;
  }
{code}
This may be the issue you are saying?  This is called from getMetaBlock().  As per the comment, when we read meta blocks, we must cache it.  As we do not pass any type we seems may not do that..  That is a bug IMO..    So we better correct that bug (Any other?)   and test ur case with HCD setting?

> 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
>
>
> 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)