You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2018/08/01 14:27:32 UTC

ignite git commit: IGNITE-8073 Cache read metric is calculated incorrectly in atomic cache.

Repository: ignite
Updated Branches:
  refs/heads/master f1ecbbc87 -> 251c91bf4


IGNITE-8073 Cache read metric is calculated incorrectly in atomic cache.

Signed-off-by: Anton Vinogradov <av...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/251c91bf
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/251c91bf
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/251c91bf

Branch: refs/heads/master
Commit: 251c91bf45bf53652e7f837751fd138134a18b51
Parents: f1ecbbc
Author: voipp <al...@gmail.com>
Authored: Wed Aug 1 17:27:22 2018 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Wed Aug 1 17:27:22 2018 +0300

----------------------------------------------------------------------
 .../distributed/near/GridNearGetFuture.java     |  2 +-
 .../GridCacheNearAtomicMetricsSelfTest.java     | 36 ++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/251c91bf/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
index e530750..a101e7f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
@@ -498,7 +498,7 @@ public final class GridNearGetFuture<K, V> extends CacheDistributedGetFutureAdap
                         return saved;
                     }
 
-                    if (cctx.statisticsEnabled() && !skipVals && !affNode.isLocal())
+                    if (cctx.statisticsEnabled() && !skipVals && !affNode.isLocal() && !isNear)
                         cache().metrics0().onRead(false);
 
                     LinkedHashMap<KeyCacheObject, Boolean> keys = mapped.get(affNode);

http://git-wip-us.apache.org/repos/asf/ignite/blob/251c91bf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearAtomicMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearAtomicMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearAtomicMetricsSelfTest.java
index 70cebff..4d82c71 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearAtomicMetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearAtomicMetricsSelfTest.java
@@ -17,8 +17,11 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
+import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
 
 /**
  * Atomic cache metrics test.
@@ -32,4 +35,37 @@ public class GridCacheNearAtomicMetricsSelfTest extends GridCacheNearMetricsSelf
 
         return ccfg;
     }
+
+    /**
+     * Checks that enabled near cache does not affect metrics.
+     */
+    public void testNearCachePutRemoveGetMetrics() {
+        IgniteEx initiator = grid(0);
+
+        IgniteCache<Integer, Integer> cache0 = initiator.cache(DEFAULT_CACHE_NAME);
+
+        for (int i = 0; ; i++) {
+            if (!initiator.affinity(DEFAULT_CACHE_NAME).isPrimaryOrBackup(initiator.cluster().localNode(), i)) {
+                cache0.put(i, i);
+
+                GridCacheEntryEx nearEntry = near(cache0).peekEx(i);
+
+                assertTrue("Near cache doesn't contain the key", nearEntry.hasValue());
+
+                cache0.remove(i);
+
+                nearEntry = near(cache0).peekEx(i);
+
+                assertFalse("Near cache contains key which was deleted", nearEntry.hasValue());
+
+                cache0.get(i);
+
+                assertEquals(1, cache0.localMetrics().getCachePuts());
+                assertEquals(1, cache0.localMetrics().getCacheRemovals());
+                assertEquals(1, cache0.localMetrics().getCacheGets());
+
+                break;
+            }
+        }
+    }
 }