You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by mi...@apache.org on 2022/07/22 12:40:05 UTC

[geode] branch develop updated: GEODE-10398: fix updating stats after restart (#7822)

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

mivanac pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9673d2bc4e GEODE-10398: fix updating stats after restart (#7822)
9673d2bc4e is described below

commit 9673d2bc4eaec478f06e75808a04d0ae459bc1df
Author: Mario Kevo <48...@users.noreply.github.com>
AuthorDate: Fri Jul 22 14:39:59 2022 +0200

    GEODE-10398: fix updating stats after restart (#7822)
    
    * GEODE-10398: fix updating stats after restart
    
    * empty commit to re-launch CI
---
 .../geode/internal/statistics/ResourceInstance.java  | 20 ++++++++++++++++++++
 .../geode/internal/statistics/SampleCollector.java   |  1 +
 .../geode/internal/statistics/StatArchiveWriter.java |  8 ++++----
 3 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java
index ad8eb92a80..a946d9c275 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java
@@ -35,6 +35,10 @@ public class ResourceInstance {
   private int[] updatedStats = null;
   private boolean statValuesNotified;
 
+  private long[] previousStatArchiveValues = null;
+
+  private long[] latestStatArchiveValues = null;
+
   public ResourceInstance(int id, Statistics statistics, ResourceType type) {
     this.id = id;
     this.statistics = statistics;
@@ -94,6 +98,22 @@ public class ResourceInstance {
     this.updatedStats = updatedStats;
   }
 
+  public long[] getLatestStatArchiveValues() {
+    return latestStatArchiveValues;
+  }
+
+  public void setLatestStatArchiveValues(long[] latestStatValues) {
+    this.latestStatArchiveValues = latestStatValues;
+  }
+
+  public long[] getPreviousStatArchiveValues() {
+    return previousStatArchiveValues;
+  }
+
+  public void setPreviousStatArchiveValues(long[] previousStatValues) {
+    this.previousStatArchiveValues = previousStatValues;
+  }
+
   @Override
   public String toString() {
     final StringBuilder sb = new StringBuilder(getClass().getName());
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java
index 53072263c1..6d1b7f01a0 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java
@@ -262,6 +262,7 @@ public class SampleCollector {
 
       ri.setUpdatedStats(updatedStats);
       ri.setLatestStatValues(statValues);
+      ri.setLatestStatArchiveValues(statValues);
       updatedResources.add(ri);
     }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java
index d53d74febb..a4a959671b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java
@@ -506,8 +506,8 @@ public class StatArchiveWriter implements StatArchiveFormat, SampleHandler {
       }
       writeTimeStamp(nanosTimeStamp);
       for (ResourceInstance ri : resourceInstances) {
-        ri.setStatValuesNotified(true);
         writeSample(ri);
+        ri.setPreviousStatArchiveValues(ri.getLatestStatArchiveValues());
       }
       writeResourceInst(ILLEGAL_RESOURCE_INST_ID);
       dataOut.flush();
@@ -555,7 +555,7 @@ public class StatArchiveWriter implements StatArchiveFormat, SampleHandler {
       sampleWrittenForResources.add(ri);
     }
 
-    long[] previousStatValues = ri.getPreviousStatValues();
+    long[] previousStatValues = ri.getPreviousStatArchiveValues();
     if (isDebugEnabled_STATISTICS) {
       logger.trace(LogMarker.STATISTICS_VERBOSE,
           "StatArchiveWriter#writeSample checkForChange={}, previousStatValues={}, stats.length={}",
@@ -563,13 +563,13 @@ public class StatArchiveWriter implements StatArchiveFormat, SampleHandler {
     }
     if (previousStatValues == null) {
       previousStatValues = new long[stats.length];
-      ri.setPreviousStatValues(previousStatValues);
+      ri.setPreviousStatArchiveValues(previousStatValues);
     }
 
     int statsWritten = 0;
     try {
       for (int i = 0; i < stats.length; i++) {
-        long value = ri.getLatestStatValues()[i];
+        long value = ri.getLatestStatArchiveValues()[i];
         if (!checkForChange || value != previousStatValues[i]) {
           long delta = checkForChange ? value - previousStatValues[i] : value;
           if (!wroteInstId) {