private void initBlockCache() { this.blockCache = this.regionServer.getBlockCache(); this.cacheStats = this.blockCache.map(BlockCache::getStats); if (this.cacheStats.isPresent()) { if (this.cacheStats.get() instanceof CombinedBlockCache.CombinedCacheStats) { l1Stats = Optional .of(((CombinedBlockCache.CombinedCacheStats) this.cacheStats.get()).getLruCacheStats()); l2Stats = Optional.of(((CombinedBlockCache.CombinedCacheStats) this.cacheStats.get()) .getBucketCacheStats()); } else { l1Stats = this.cacheStats; } } }
CacheStats bucketCacheStats = new CacheStats("bucketCacheStats", 2); CombinedCacheStats stats = new CombinedCacheStats(lruCacheStats, bucketCacheStats); assertEquals(5, stats.getRequestCount()); assertEquals(2, stats.getRequestCachingCount()); assertEquals(2, stats.getMissCount()); assertEquals(1, stats.getPrimaryMissCount()); assertEquals(1, stats.getMissCachingCount()); assertEquals(3, stats.getHitCount()); assertEquals(3, stats.getPrimaryHitCount()); assertEquals(1, stats.getHitCachingCount()); assertEquals(0.6, stats.getHitRatio(), delta); assertEquals(0.5, stats.getHitCachingRatio(), delta); assertEquals(0.4, stats.getMissRatio(), delta); assertEquals(0.5, stats.getMissCachingRatio(), delta); lruCacheStats.evict(); bucketCacheStats.evict(); assertEquals(2, stats.getEvictionCount()); assertEquals(2, stats.getEvictedCount()); assertEquals(1, stats.getPrimaryEvictedCount()); assertEquals(1.0, stats.evictedPerEviction(), delta); assertEquals(1, stats.getFailedInserts()); stats.rollMetricsPeriod(); assertEquals(3, stats.getSumHitCountsPastNPeriods()); assertEquals(5, stats.getSumRequestCountsPastNPeriods());
public CombinedBlockCache(LruBlockCache lruCache, BlockCache l2Cache) { this.lruCache = lruCache; this.l2Cache = l2Cache; this.combinedCacheStats = new CombinedCacheStats(lruCache.getStats(), l2Cache.getStats()); }
CacheStats bucketCacheStats = new CacheStats("bucketCacheStats", 2); CombinedCacheStats stats = new CombinedCacheStats(lruCacheStats, bucketCacheStats); assertEquals(5, stats.getRequestCount()); assertEquals(2, stats.getRequestCachingCount()); assertEquals(2, stats.getMissCount()); assertEquals(1, stats.getPrimaryMissCount()); assertEquals(1, stats.getMissCachingCount()); assertEquals(3, stats.getHitCount()); assertEquals(3, stats.getPrimaryHitCount()); assertEquals(1, stats.getHitCachingCount()); assertEquals(0.6, stats.getHitRatio(), delta); assertEquals(0.5, stats.getHitCachingRatio(), delta); assertEquals(0.4, stats.getMissRatio(), delta); assertEquals(0.5, stats.getMissCachingRatio(), delta); lruCacheStats.evict(); bucketCacheStats.evict(); assertEquals(2, stats.getEvictionCount()); assertEquals(2, stats.getEvictedCount()); assertEquals(1, stats.getPrimaryEvictedCount()); assertEquals(1.0, stats.evictedPerEviction(), delta); assertEquals(1, stats.getFailedInserts()); stats.rollMetricsPeriod(); assertEquals(3, stats.getSumHitCountsPastNPeriods()); assertEquals(5, stats.getSumRequestCountsPastNPeriods());
public CombinedBlockCache(LruBlockCache onHeapCache, BlockCache l2Cache) { this.onHeapCache = onHeapCache; this.l2Cache = l2Cache; this.combinedCacheStats = new CombinedCacheStats(onHeapCache.getStats(), l2Cache.getStats()); }