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

wusheng pushed a commit to branch fix
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit ff7fe4d46eef49726c2ac35c586a7d19adf68ab4
Author: Wu Sheng <[email protected]>
AuthorDate: Mon Dec 5 17:53:58 2022 +0800

    Remove offset of metrics session threshold. Try to correct 
SessionCacheCallback
---
 docs/en/changes/changes.md                                     |  1 +
 .../server/core/analysis/worker/MetricsPersistentWorker.java   | 10 +---------
 .../oap/server/core/storage/SessionCacheCallback.java          | 10 ----------
 3 files changed, 2 insertions(+), 19 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index bf96fcabe7..e31225a95d 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -21,6 +21,7 @@
     // for the specific minute of booted successfully, the metrics are 
expected to load from database when
     // it doesn't exist in the cache.
 ```
+* Remove offset of metrics session threshold. Only keep 4 times of minute 
dimensionality timeout.
 
 #### UI
 
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
index 403e2b8c67..dee1994040 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
@@ -53,11 +53,6 @@ import 
org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
  */
 @Slf4j
 public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
-    /**
-     * The counter of MetricsPersistentWorker instance, to calculate session 
timeout offset.
-     */
-    private static long SESSION_TIMEOUT_OFFSITE_COUNTER = 0;
-
     private final Model model;
     private final MetricsSessionCache sessionCache;
     private final IMetricsDAO metricsDAO;
@@ -157,7 +152,6 @@ public class MetricsPersistentWorker extends 
PersistenceWorker<Metrics> {
             "metrics_persistent_cache", "The counter of metrics status, new or 
cached.",
             new MetricsTag.Keys("status"), new MetricsTag.Values("cached")
         );
-        SESSION_TIMEOUT_OFFSITE_COUNTER++;
         serverStatusService = 
moduleDefineHolder.find(CoreModule.NAME).provider().getService(ServerStatusService.class);
     }
 
@@ -176,9 +170,7 @@ public class MetricsPersistentWorker extends 
PersistenceWorker<Metrics> {
              supportUpdate, storageSessionTimeout, metricsDataTTL, kind
         );
         // For a down-sampling metrics, we prolong the session timeout for 4 
times, nearly 5 minutes.
-        // And add offset according to worker creation sequence, to avoid 
context clear overlap,
-        // eventually optimize load of IDs reading.
-        sessionCache.setTimeoutThreshold(storageSessionTimeout * 4 + 
SESSION_TIMEOUT_OFFSITE_COUNTER * 200);
+        sessionCache.setTimeoutThreshold(storageSessionTimeout * 4);
         // The down sampling level worker executes every 4 periods.
         this.persistentMod = 4;
     }
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/SessionCacheCallback.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/SessionCacheCallback.java
index ceff064e05..98e01bf87c 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/SessionCacheCallback.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/SessionCacheCallback.java
@@ -29,22 +29,12 @@ import 
org.apache.skywalking.oap.server.core.analysis.worker.MetricsSessionCache
 public class SessionCacheCallback {
     private final MetricsSessionCache sessionCache;
     private final Metrics metrics;
-    /**
-     * In some cases, this callback could be shared by multiple executions, 
such as SQLExecutor#additionalSQLs.
-     * This flag would make sure, once one of the generated executions is 
failure, the whole metric would be removed
-     * from the cache, and would not be added back. As those are executed in a 
batch mode. The sequence is uncertain.
-     */
-    private volatile boolean isFailed = false;
 
     public void onInsertCompleted() {
-        if (isFailed) {
-            return;
-        }
         sessionCache.put(metrics);
     }
 
     public void onUpdateFailure() {
-        isFailed = true;
         sessionCache.remove(metrics);
     }
 }

Reply via email to