You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Guangxu Cheng (JIRA)" <ji...@apache.org> on 2017/12/20 03:56:00 UTC

[jira] [Created] (HBASE-19561) maxCacheSize in CacheEvictionStats can't be accumulated repeatedly When dealing with each region

Guangxu Cheng created HBASE-19561:
-------------------------------------

             Summary: maxCacheSize in CacheEvictionStats can't be accumulated repeatedly When dealing with each region
                 Key: HBASE-19561
                 URL: https://issues.apache.org/jira/browse/HBASE-19561
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.0.0
            Reporter: Guangxu Cheng
            Assignee: Guangxu Cheng


{code:title=HRegionServer.java|borderStyle=solid}
  public CacheEvictionStats clearRegionBlockCache(Region region) {
    BlockCache blockCache = this.getCacheConfig().getBlockCache();
    long evictedBlocks = 0;

    for(Store store : region.getStores()) {
      for(StoreFile hFile : store.getStorefiles()) {
        evictedBlocks += blockCache.evictBlocksByHfileName(hFile.getPath().getName());
      }
    }

    return CacheEvictionStats.builder()
        .withEvictedBlocks(evictedBlocks)
        .withMaxCacheSize(blockCache.getMaxSize())
        .build();
  }
{code}

BlockCache is the regionserver level object.If we accumulate this value for each region, we will get a wrong result.
The value of maxCacheSize should be set to BlockCache.getMaxSize() after processing all the regions on this regionserver.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)