@Override public int evictBlocksByHfileName(String hfileName) { return onHeapCache.evictBlocksByHfileName(hfileName) + l2Cache.evictBlocksByHfileName(hfileName); }
@Override public void close(boolean evictOnClose) throws IOException { PrefetchExecutor.cancel(path); cacheConf.getBlockCache().ifPresent(cache -> { if (evictOnClose) { int numEvicted = cache.evictBlocksByHfileName(name); if (LOG.isTraceEnabled()) { LOG.trace("On close, file=" + name + " evicted=" + numEvicted + " block(s)"); } } }); fsBlockReader.closeStreams(); }
/** * Evicts all blocks for a specific HFile. This is an * expensive operation implemented as a linear-time search through all blocks * in the cache. Ideally this should be a search in a log-access-time map. * * <p> * This is used for evict-on-close to remove all blocks of a specific HFile. * * @return the number of blocks evicted */ @Override public int evictBlocksByHfileName(String hfileName) { int numEvicted = 0; for (BlockCacheKey key : map.keySet()) { if (key.getHfileName().equals(hfileName)) { if (evictBlock(key)) ++numEvicted; } } if (victimHandler != null) { numEvicted += victimHandler.evictBlocksByHfileName(hfileName); } return numEvicted; }
public CacheEvictionStats clearRegionBlockCache(Region region) { long evictedBlocks = 0; for(Store store : region.getStores()) { for(StoreFile hFile : store.getStorefiles()) { evictedBlocks += blockCache.evictBlocksByHfileName(hFile.getPath().getName()); } } return CacheEvictionStats.builder() .withEvictedBlocks(evictedBlocks) .build(); }
BlockCache blockCache = cacheConf.getBlockCache().get(); blockCache.evictBlocksByHfileName(hfilePath.getName());
+ compr); blockCache.evictBlocksByHfileName(hfilePath.getName());
@Override public int evictBlocksByHfileName(String hfileName) { return lruCache.evictBlocksByHfileName(hfileName) + l2Cache.evictBlocksByHfileName(hfileName); }
/** * Evicts all blocks for a specific HFile. This is an * expensive operation implemented as a linear-time search through all blocks * in the cache. Ideally this should be a search in a log-access-time map. * * <p> * This is used for evict-on-close to remove all blocks of a specific HFile. * * @return the number of blocks evicted */ @Override public int evictBlocksByHfileName(String hfileName) { int numEvicted = 0; for (BlockCacheKey key : map.keySet()) { if (key.getHfileName().equals(hfileName)) { if (evictBlock(key)) ++numEvicted; } } if (victimHandler != null) { numEvicted += victimHandler.evictBlocksByHfileName(hfileName); } return numEvicted; }
public void close(boolean evictOnClose) throws IOException { if (evictOnClose && cacheConf.isBlockCacheEnabled()) { int numEvicted = cacheConf.getBlockCache().evictBlocksByHfileName(name); if (LOG.isTraceEnabled()) { LOG.trace("On close, file=" + name + " evicted=" + numEvicted + " block(s)"); } } if (closeIStream) { if (istream != istreamNoFsChecksum && istreamNoFsChecksum != null) { istreamNoFsChecksum.close(); istreamNoFsChecksum = null; } if (istream != null) { istream.close(); istream = null; } } getSchemaMetrics().flushMetrics(); }
public void close(boolean evictOnClose) throws IOException { PrefetchExecutor.cancel(path); if (evictOnClose && cacheConf.isBlockCacheEnabled()) { int numEvicted = cacheConf.getBlockCache().evictBlocksByHfileName(name); if (LOG.isTraceEnabled()) { LOG.trace("On close, file=" + name + " evicted=" + numEvicted + " block(s)"); } } fsBlockReader.closeStreams(); }
BlockCache blockCache = cacheConf.getBlockCache(); blockCache.evictBlocksByHfileName(hfilePath.getName());
+ compr); blockCache.evictBlocksByHfileName(hfilePath.getName());