You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by dh...@apache.org on 2019/07/22 22:09:27 UTC

[geode] 14/18: Remove CachePerfStats.getEntries()

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

dhemery pushed a commit to branch GEODE-7001-region-entry-count
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 0e2fa6f9abb569cfc958c603f48516da2e17632c
Author: Dale Emery <de...@pivotal.io>
AuthorDate: Fri Jul 19 10:47:30 2019 -0700

    Remove CachePerfStats.getEntries()
    
    Co-Authored-By: Mark Hanson <mh...@pivotal.io>
---
 .../cache/PartitionedRegionStatsDUnitTest.java     |  3 +-
 .../geode/internal/cache/CachePerfStats.java       |  4 ---
 .../geode/internal/cache/DummyCachePerfStats.java  |  5 ----
 .../internal/cache/PartitionedRegionStatus.java    | 12 --------
 .../geode/internal/cache/RegionPerfStats.java      |  6 ++--
 .../geode/internal/cache/CachePerfStatsTest.java   | 35 +++-------------------
 .../geode/internal/cache/RegionPerfStatsTest.java  | 27 +++++++++++------
 7 files changed, 27 insertions(+), 65 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
index d05ca9c..2ac97cf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
@@ -264,7 +264,8 @@ public class PartitionedRegionStatsDUnitTest extends CacheTestCase {
     CachePerfStats cachePerfStats = region.getCachePerfStats();
 
     assertThat(stats.getDataStoreEntryCount()).isEqualTo(expectedCount);
-    assertThat(cachePerfStats.getEntries()).isEqualTo(expectedCount);
+    long actualCount = cachePerfStats.stats.getLong(CachePerfStats.entryGaugeId);
+    assertThat(actualCount).isEqualTo(expectedCount);
   }
 
   private void validateTotalNumBucketsCount(final String regionName, final int expectedCount) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
index 41dfe2b..b597ec9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/CachePerfStats.java
@@ -1323,10 +1323,6 @@ public class CachePerfStats {
     stats.incLong(entryGaugeId, delta);
   }
 
-  public long getEntries() {
-    return stats.getLong(entryGaugeId);
-  }
-
   public void incRetries() {
     stats.incInt(retriesId, 1);
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DummyCachePerfStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DummyCachePerfStats.java
index fa704c2..c4aadfc 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DummyCachePerfStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DummyCachePerfStats.java
@@ -354,11 +354,6 @@ public class DummyCachePerfStats extends CachePerfStats {
   public void incEntryCount(int delta) {}
 
   @Override
-  public long getEntries() {
-    return 0;
-  }
-
-  @Override
   public void incRetries() {}
 
   @Override
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatus.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatus.java
index 902662a..d6f2d0a 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatus.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatus.java
@@ -31,14 +31,6 @@ public class PartitionedRegionStatus extends RegionStatus {
     initialize(region);
   }
 
-  public int getNumberOfLocalEntries() {
-    return this.numberOfLocalEntries;
-  }
-
-  protected void setNumberOfLocalEntries(int numberOfLocalEntries) {
-    this.numberOfLocalEntries = numberOfLocalEntries;
-  }
-
   @Override
   public long getHeapSize() {
     return this.heapSize;
@@ -55,14 +47,10 @@ public class PartitionedRegionStatus extends RegionStatus {
     // in this VM), get the number of entries and heap size. Else,
     // set these to 0.
     PartitionedRegionDataStore ds = region.getDataStore();
-    int numLocalEntries = 0;
     long heapSize = 0;
     if (ds != null) {
-      CachePerfStats cpStats = ds.getCachePerfStats();
-      numLocalEntries = (int) cpStats.getEntries();
       heapSize = ds.currentAllocatedMemory();
     }
-    setNumberOfLocalEntries(numLocalEntries);
     setHeapSize(heapSize);
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
index 016ee77..2973ac3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionPerfStats.java
@@ -45,11 +45,12 @@ class RegionPerfStats extends CachePerfStats {
     this.cachePerfStats = cachePerfStats;
     this.meterRegistry = meterRegistry;
     entryCount = new AtomicLong();
-    entriesGauge = Gauge.builder("member.region.entries", entryCount, AtomicLong::get)
+    entriesGauge = Gauge.builder("member.region.entries", entryCount::get)
         .description("Current number of entries in the region.")
-        .baseUnit("entries")
         .tag("region.name", regionName)
+        .baseUnit("entries")
         .register(meterRegistry);
+    stats.setLongSupplier(entryGaugeId, entryCount::get);
   }
 
   private static LongSupplier createClock() {
@@ -488,7 +489,6 @@ class RegionPerfStats extends CachePerfStats {
 
   @Override
   public void incEntryCount(int delta) {
-    super.incEntryCount(delta);
     entryCount.addAndGet(delta);
     cachePerfStats.incEntryCount(delta);
   }
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
index f1c7800..6a3de24 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/CachePerfStatsTest.java
@@ -1127,43 +1127,16 @@ public class CachePerfStatsTest {
   }
 
   @Test
-  public void incEntryCount_whenDeltaIsPositive_increasesTheEntryCount() {
+  public void incEntryCount_whenDeltaIsPositive_increasesTheEntryCountStat() {
     cachePerfStats.incEntryCount(2);
 
-    assertThat(cachePerfStats.getEntries()).isEqualTo(2);
+    assertThat(statistics.getLong(entryGaugeId)).isEqualTo(2);
   }
 
   @Test
-  public void incEntryCount_whenDeltaIsNegative_decreasesTheEntryCount() {
+  public void incEntryCount_whenDeltaIsNegative_decreasesTheEntryCountStat() {
     cachePerfStats.incEntryCount(-2);
 
-    assertThat(cachePerfStats.getEntries()).isEqualTo(-2);
-  }
-
-  @Test
-  public void getEntriesReturnsZeroByDefault() {
-    long defaultValue = cachePerfStats.getEntries();
-
-    assertThat(defaultValue).isZero();
-  }
-
-  @Test
-  public void entryGaugeIdStatIsSuppliedByIncEntryCount() {
-    int delta = 2;
-
-    cachePerfStats.incEntryCount(delta);
-
-    statistics.updateSuppliedValues();
-
-    assertThat(statistics.getLong(entryGaugeId)).isEqualTo(delta);
-  }
-
-  @Test
-  public void entryGaugeIdStatIsSuppliedZeroByDefault() {
-    statistics.updateSuppliedValues();
-
-    long defaultValue = statistics.getLong(entryGaugeId);
-
-    assertThat(defaultValue).isZero();
+    assertThat(statistics.getLong(entryGaugeId)).isEqualTo(-2);
   }
 }
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
index 0067b5c..e7fc0f9 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionPerfStatsTest.java
@@ -22,6 +22,8 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.mockito.quality.Strictness.STRICT_STUBS;
 
+import java.util.function.LongSupplier;
+
 import io.micrometer.core.instrument.Gauge;
 import io.micrometer.core.instrument.Meter;
 import io.micrometer.core.instrument.MeterRegistry;
@@ -31,6 +33,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 
@@ -95,7 +98,7 @@ public class RegionPerfStatsTest {
   }
 
   @Test
-  public void regionPerfStatsConstruction_createsEntriesGauge_taggedWithRegionName() {
+  public void constructor_createsEntriesGauge_taggedWithRegionName() {
     Gauge entriesGauge = meterRegistry
         .find("member.region.entries")
         .tag("region.name", REGION_NAME)
@@ -104,17 +107,23 @@ public class RegionPerfStatsTest {
   }
 
   @Test
-  public void incEntryCount_updatesEntryGaugeStatistic() {
-    regionPerfStats.incEntryCount(3);
+  public void suppliesEntryCountStatWithAccumulatedEntryCount() {
+    ArgumentCaptor<LongSupplier> supplierCaptor = ArgumentCaptor.forClass(LongSupplier.class);
 
-    verify(statistics).incLong(RegionPerfStats.entryGaugeId, 3);
-  }
+    verify(statistics).setLongSupplier(eq(RegionPerfStats.entryGaugeId), supplierCaptor.capture());
 
-  @Test
-  public void getEntryCount_updatesEntryGaugeStatistic() {
-    when(statistics.getLong(RegionPerfStats.entryGaugeId)).thenReturn(431L);
+    LongSupplier capturedSupplier = supplierCaptor.getValue();
+    assertThat(capturedSupplier.getAsLong())
+        .as("Initial value of supplier")
+        .isEqualTo(0);
+    
+    regionPerfStats.incEntryCount(3);
+    regionPerfStats.incEntryCount(7);
+    regionPerfStats.incEntryCount(-4);
 
-    assertThat(regionPerfStats.getEntries()).isEqualTo(431);
+    assertThat(capturedSupplier.getAsLong())
+        .as("Accumulated value of supplier")
+        .isEqualTo(6);
   }
 
   @Test