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

zhaoqingran pushed a commit to branch bugfix-oom
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git

commit fdcac6ee278357f31f3635b5803af2ab1bac6489
Author: Logic <[email protected]>
AuthorDate: Fri Jan 10 08:01:38 2025 +0800

    fix(warehouse): add metrics data update logic in memory storage
    
    - Add check for existing metrics data before updating
    - Close old metrics data to release resources
---
 .../warehouse/store/realtime/memory/MemoryDataStorage.java        | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/realtime/memory/MemoryDataStorage.java
 
b/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/realtime/memory/MemoryDataStorage.java
index 4d7ecba7c0..5ae9d250ca 100644
--- 
a/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/realtime/memory/MemoryDataStorage.java
+++ 
b/hertzbeat-warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/realtime/memory/MemoryDataStorage.java
@@ -72,7 +72,13 @@ public class MemoryDataStorage extends 
AbstractRealTimeDataStorage {
         if (metricsData.getCode() != CollectRep.Code.SUCCESS) {
             return;
         }
-        Map<String, CollectRep.MetricsData> metricsDataMap = 
monitorMetricsDataMap.computeIfAbsent(monitorId, key -> new 
ConcurrentHashMap<>(METRICS_SIZE));
+        Map<String, CollectRep.MetricsData> metricsDataMap =
+                monitorMetricsDataMap.computeIfAbsent(monitorId, key -> new 
ConcurrentHashMap<>(METRICS_SIZE));
+
+        CollectRep.MetricsData oldMetricsData = metricsDataMap.get(metrics);
+        if (oldMetricsData != null) {
+            oldMetricsData.close();
+        }
         metricsDataMap.put(metrics, metricsData);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to