/** {@inheritDoc} */ @Override public long getCacheMisses() { return cache.clusterMetrics().getCacheMisses(); }
/** {@inheritDoc} */ @Override public IgniteInternalFuture<?> applyx(IgniteInternalCache<Object, Object> c, GridKernalContext ctx) { CacheMetrics metrics = c.cache().localMetrics(); assert metrics != null; return new GridFinishedFuture<Object>(new GridCacheRestMetrics( (int)metrics.getCacheGets(), (int)(metrics.getCacheRemovals() + metrics.getCachePuts()), (int)metrics.getCacheHits(), (int)metrics.getCacheMisses()) ); } }
assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(missCount, cache.localMetrics().getCacheMisses());
assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(missCount, cache.localMetrics().getCacheMisses());
/** * @throws Exception If failed. */ @Test public void testMissesOnEmptyCache() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); assertEquals("Expected 0 read", 0, cache.localMetrics().getCacheGets()); assertEquals("Expected 0 miss", 0, cache.localMetrics().getCacheMisses()); Integer key = null; for (int i = 0; i < 1000; i++) { if (affinity(cache).isPrimary(grid(0).localNode(), i)) { key = i; break; } } assertNotNull(key); cache.get(key); assertEquals("Expected 1 read", 1, cache.localMetrics().getCacheGets()); assertEquals("Expected 1 miss", 1, cache.localMetrics().getCacheMisses()); cache.getAndPut(key, key); // +1 read, +1 miss. assertEquals("Expected 2 reads", 2, cache.localMetrics().getCacheGets()); cache.get(key); assertEquals("Expected 1 write", 1, cache.localMetrics().getCachePuts()); assertEquals("Expected 3 reads", 3, cache.localMetrics().getCacheGets()); assertEquals("Expected 2 misses", 2, cache.localMetrics().getCacheMisses()); assertEquals("Expected 1 hit", 1, cache.localMetrics().getCacheHits()); }
assertFalse(result); assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); ++putCount; assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); ++putCount; assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(missCount, cache.localMetrics().getCacheMisses());
assertFalse(result); assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); ++putCount; assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); ++putCount; assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(missCount, cache.localMetrics().getCacheMisses());
/** * This test is just a wrapper for org.apache.ignite.examples.datagrid.CachePopularNumbersExample * * @throws Exception If failed. */ @Test public void testHitsAndMisses() throws Exception { MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.METRICS); startGrids(GRID_CNT); awaitPartitionMapExchange(); try { final Ignite g = grid(0); realTimePopulate(g); // Check metrics for the whole cache. long hits = 0; long misses = 0; for (int i = 0; i < GRID_CNT; i++) { CacheMetrics m = grid(i).cache(DEFAULT_CACHE_NAME).localMetrics(); hits += m.getCacheHits(); misses += m.getCacheMisses(); } // Check that invoke and loader updated metrics assertEquals(CNT / 2, hits); assertEquals(CNT / 2, misses); } finally { stopAllGrids(); } }
/** * @throws Exception If failed. */ @Test public void testMissHitPercentage() throws Exception { IgniteCache<Integer, Integer> cache0 = grid(0).cache(DEFAULT_CACHE_NAME); final int keyCnt = keyCount(); // Put and get a few keys. for (int i = 0; i < keyCnt; i++) { cache0.getAndPut(i, i); // +1 read info("Puts: " + cache0.localMetrics().getCachePuts()); for (int j = 0; j < gridCount(); j++) { IgniteCache<Integer, Integer> cache = grid(j).cache(DEFAULT_CACHE_NAME); long cacheWrites = cache.localMetrics().getCachePuts(); assertEquals("Wrong cache metrics [i=" + i + ", grid=" + j + ']', i + 1, cacheWrites); } assertEquals("Wrong value for key: " + i, Integer.valueOf(i), cache0.get(i)); // +1 read } // Check metrics for the whole cache. for (int i = 0; i < gridCount(); i++) { CacheMetrics m = grid(i).cache(DEFAULT_CACHE_NAME).localMetrics(); assertEquals(m.getCacheHits() * 100f / m.getCacheGets(), m.getCacheHitPercentage(), 0.1f); assertEquals(m.getCacheMisses() * 100f / m.getCacheGets(), m.getCacheMissPercentage(), 0.1f); } }
/** * @throws Exception If failed. */ @Test public void testCacheStatistics() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(1, 10); assertEquals(0, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.remove(1); assertEquals(0, cache.localMetrics().getCacheHits()); assertEquals(1, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.remove(1); assertEquals(0, cache.localMetrics().getCacheHits()); assertEquals(0, cache.localMetrics().getCacheMisses()); assertEquals(1, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.put(1, 10); assertTrue(cache.remove(1, 10)); assertEquals(1, cache.localMetrics().getCacheHits()); assertEquals(0, cache.localMetrics().getCacheMisses()); assertEquals(2, cache.localMetrics().getCacheRemovals()); assertEquals(2, cache.localMetrics().getCachePuts()); assertFalse(cache.remove(1, 10)); assertEquals(1, cache.localMetrics().getCacheHits()); assertEquals(1, cache.localMetrics().getCacheMisses()); assertEquals(2, cache.localMetrics().getCacheRemovals()); assertEquals(2, cache.localMetrics().getCachePuts()); }
/** * @throws Exception If failed. */ @Test public void testCacheStatistics() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(1, 10); assertEquals(0, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.remove(1); assertEquals(0, cache.localMetrics().getCacheHits()); assertEquals(1, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.remove(1); assertEquals(0, cache.localMetrics().getCacheHits()); assertEquals(0, cache.localMetrics().getCacheMisses()); assertEquals(1, cache.localMetrics().getCacheRemovals()); assertEquals(1, cache.localMetrics().getCachePuts()); cache.put(1, 10); assertTrue(cache.remove(1, 10)); assertEquals(1, cache.localMetrics().getCacheHits()); assertEquals(0, cache.localMetrics().getCacheMisses()); assertEquals(2, cache.localMetrics().getCacheRemovals()); assertEquals(2, cache.localMetrics().getCachePuts()); assertFalse(cache.remove(1, 10)); assertEquals(1, cache.localMetrics().getCacheHits()); assertEquals(1, cache.localMetrics().getCacheMisses()); assertEquals(2, cache.localMetrics().getCacheRemovals()); assertEquals(2, cache.localMetrics().getCachePuts()); }
assertEquals(1, jcache.localMetrics().getCacheGets()); assertEquals(0, jcache.localMetrics().getCacheHits()); assertEquals(1, jcache.localMetrics().getCacheMisses()); assertEquals(0, jcache.localMetrics().getCacheMisses()); assertEquals(0, jcache.localMetrics().getCacheMisses());
reads += m.getCacheGets(); hits += m.getCacheHits(); misses += m.getCacheMisses();
reads += m.getCacheGets(); hits += m.getCacheHits(); misses += m.getCacheMisses();
reads += m.getCacheGets(); hits += m.getCacheHits(); misses += m.getCacheMisses();
assertEquals(2, jcache.localMetrics().getCacheGets()); assertEquals(0, jcache.localMetrics().getCacheHits()); assertEquals(2, jcache.localMetrics().getCacheMisses()); assertEquals(0, jcache.localMetrics().getCacheMisses());
/** * @throws Exception If failed. */ @Test public void testEntryProcessorRemove() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(1, 20); int result = cache.invoke(1, new EntryProcessor<Integer, Integer, Integer>() { @Override public Integer process(MutableEntry<Integer, Integer> entry, Object... arguments) throws EntryProcessorException { Integer result = entry.getValue(); entry.remove(); return result; } }); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(20, result); assertEquals(1L, cache.localMetrics().getCacheHits()); assertEquals(100.0f, cache.localMetrics().getCacheHitPercentage()); assertEquals(0L, cache.localMetrics().getCacheMisses()); assertEquals(0f, cache.localMetrics().getCacheMissPercentage()); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(1L, cache.localMetrics().getCacheRemovals()); assertEquals(0L, cache.localMetrics().getCacheEvictions()); assert cache.localMetrics().getAveragePutTime() >= 0; assert cache.localMetrics().getAverageGetTime() >= 0; assert cache.localMetrics().getAverageRemoveTime() >= 0; }
assertEquals(2, jcache.localMetrics().getCacheGets()); assertEquals(1, jcache.localMetrics().getCacheHits()); assertEquals(1, jcache.localMetrics().getCacheMisses()); assertEquals(0, jcache.localMetrics().getCacheMisses());
/** * @throws Exception If failed. */ @Test public void testEntryProcessorRemove() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(1, 20); int result = cache.invoke(1, new EntryProcessor<Integer, Integer, Integer>() { @Override public Integer process(MutableEntry<Integer, Integer> entry, Object... arguments) throws EntryProcessorException { Integer result = entry.getValue(); entry.remove(); return result; } }); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(20, result); assertEquals(1L, cache.localMetrics().getCacheHits()); assertEquals(100.0f, cache.localMetrics().getCacheHitPercentage()); assertEquals(0L, cache.localMetrics().getCacheMisses()); assertEquals(0f, cache.localMetrics().getCacheMissPercentage()); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(1L, cache.localMetrics().getCacheRemovals()); assertEquals(0L, cache.localMetrics().getCacheEvictions()); assert cache.localMetrics().getAveragePutTime() >= 0; assert cache.localMetrics().getAverageGetTime() >= 0; assert cache.localMetrics().getAverageRemoveTime() >= 0; }
assertEquals(2, jcache.localMetrics().getCacheGets()); assertEquals(0, jcache.localMetrics().getCacheHits()); assertEquals(2, jcache.localMetrics().getCacheMisses()); assertEquals(0, jcache.localMetrics().getCacheMisses());