From 265e4181b7dc4ae5132fbb23b68bf94c6e80f603 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 3 Apr 2025 14:25:42 +0300 Subject: [PATCH] improved performance --- .../subscription/DefaultTbLocalSubscriptionService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java index d39c5fcb12..5716976b6f 100644 --- a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java +++ b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java @@ -347,7 +347,8 @@ public class DefaultTbLocalSubscriptionService implements TbLocalSubscriptionSer if (sub.isAllKeys()) { if (sub.isLatestValues()) { for (TsKvEntry kv : data) { - if (!keyStates.containsKey((kv.getKey())) || kv.getTs() > keyStates.get(kv.getKey())) { + Long stateTs = keyStates.get(kv.getKey()); + if (stateTs == null || kv.getTs() > stateTs) { if (updateData == null) { updateData = new ArrayList<>(); } @@ -359,8 +360,9 @@ public class DefaultTbLocalSubscriptionService implements TbLocalSubscriptionSer } } else { for (TsKvEntry kv : data) { - if (keyStates.containsKey((kv.getKey()))) { - if (!sub.isLatestValues() || kv.getTs() > keyStates.get(kv.getKey())) { + Long stateTs = keyStates.get(kv.getKey()); + if (stateTs != null) { + if (!sub.isLatestValues() || kv.getTs() > stateTs) { if (updateData == null) { updateData = new ArrayList<>(); }