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)

Reply via email to