This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 7366008  IGNITE-15667 Add time metrics and statistics for the 
IgniteCache#getAllOutTx (#9493)
7366008 is described below

commit 7366008a05ec66c49476b2f54dddc0cd73640f68
Author: Nikita Amelchev <nsamelc...@gmail.com>
AuthorDate: Thu Oct 14 14:06:41 2021 +0300

    IGNITE-15667 Add time metrics and statistics for the 
IgniteCache#getAllOutTx (#9493)
---
 .../internal/processors/cache/GridCacheAdapter.java    | 15 ++++++++++++++-
 .../cache/GridCacheAbstractMetricsSelfTest.java        | 18 ++++++++++++++++++
 .../PerformanceStatisticsSelfTest.java                 |  3 +++
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 2bb176f..5a6bc97 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1418,11 +1418,16 @@ public abstract class GridCacheAdapter<K, V> implements 
IgniteInternalCache<K, V
 
     /** {@inheritDoc} */
     @Override public final IgniteInternalFuture<Map<K, V>> 
getAllOutTxAsync(Set<? extends K> keys) {
+        final boolean statsEnabled = ctx.statisticsEnabled();
+        final boolean performanceStatsEnabled = 
ctx.kernalContext().performanceStatistics().enabled();
+
+        final long start = statsEnabled || performanceStatsEnabled ? 
System.nanoTime() : 0L;
+
         String taskName = ctx.kernalContext().job().currentTaskName();
 
         CacheOperationContext opCtx = ctx.operationContextPerCall();
 
-        return repairableGetAllAsync(keys,
+        IgniteInternalFuture<Map<K, V>> fut = repairableGetAllAsync(keys,
             !ctx.config().isReadFromBackup(),
             /*skip tx*/true,
             taskName,
@@ -1431,6 +1436,14 @@ public abstract class GridCacheAdapter<K, V> implements 
IgniteInternalCache<K, V
             opCtx != null && opCtx.readRepair(),
             /*skip values*/false,
             /*need ver*/false);
+
+        if (statsEnabled)
+            fut.listen(new UpdateGetAllTimeStatClosure<>(metrics0(), start));
+
+        if (performanceStatsEnabled)
+            fut.listen(f -> writeStatistics(OperationType.CACHE_GET_ALL, 
start));
+
+        return fut;
     }
 
     /** {@inheritDoc} */
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
index 2c00330..caa0015 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractMetricsSelfTest.java
@@ -1507,6 +1507,24 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         assertEquals(2, stream(removeTime.value()).sum());
     }
 
+    /** */
+    @Test
+    public void testGetAllOutTx() throws Exception {
+        IgniteCache<Integer, Integer> cache = 
grid(0).cache(DEFAULT_CACHE_NAME);
+
+        HistogramMetricImpl getAllTime = metric("GetAllTime");
+
+        assertTrue(stream(getAllTime.value()).allMatch(v -> v == 0));
+
+        cache.getAllOutTx(singleton(1));
+
+        assertTrue(waitForCondition(() -> stream(getAllTime.value()).sum() == 
1, getTestTimeout()));
+
+        cache.getAllOutTxAsync(singleton(1)).get();
+
+        assertTrue(waitForCondition(() -> stream(getAllTime.value()).sum() == 
2, getTestTimeout()));
+    }
+
     /**
      * @param name Metric name to find.
      * @return Metric.
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/performancestatistics/PerformanceStatisticsSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/performancestatistics/PerformanceStatisticsSelfTest.java
index 396f5ee..f28c2c0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/performancestatistics/PerformanceStatisticsSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/performancestatistics/PerformanceStatisticsSelfTest.java
@@ -205,6 +205,9 @@ public class PerformanceStatisticsSelfTest extends 
AbstractPerformanceStatistics
         checkCacheOperation(CACHE_GET_ALL, cache -> 
cache.getAll(Collections.singleton(1)));
         checkCacheOperation(CACHE_GET_ALL, cache -> 
cache.getAllAsync(Collections.singleton(2)).get());
 
+        checkCacheOperation(CACHE_GET_ALL, cache -> 
cache.getAllOutTx(Collections.singleton(1)));
+        checkCacheOperation(CACHE_GET_ALL, cache -> 
cache.getAllOutTxAsync(Collections.singleton(2)).get());
+
         checkCacheOperation(CACHE_REMOVE, cache -> cache.remove(1));
         checkCacheOperation(CACHE_REMOVE, cache -> cache.removeAsync(2).get());
 

Reply via email to