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]
