This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch cem
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/cem by this push:
new 2126eb69574 fix
2126eb69574 is described below
commit 2126eb695742be43aa076fec9725a18701339cee
Author: Caideyipi <[email protected]>
AuthorDate: Fri Nov 28 18:27:32 2025 +0800
fix
---
.../cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java | 6 ++++++
.../analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java | 8 +++-----
.../analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java | 3 +++
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
index 54c53a15d50..ea7f502a90b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
@@ -72,6 +72,12 @@ public class CacheEntryGroupImpl<FK, SK, V, T extends
ICacheEntry<SK, V>>
return cacheEntryMap.compute(secondKey, computation.apply(memory));
}
+ @Override
+ public T computeCacheEntryIfPresent(
+ final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>>
computation) {
+ return cacheEntryMap.computeIfPresent(secondKey,
computation.apply(memory));
+ }
+
@Override
public long removeCacheEntry(final SK secondKey) {
final T result = cacheEntryMap.remove(secondKey);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
index 86d10422249..79fbd595e1b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
@@ -153,13 +153,11 @@ class DualKeyCacheImpl<FK, SK, V, T extends
ICacheEntry<SK, V>>
if (!secondKeyChecker.test(entry.getKey())) {
return;
}
- entryGroup.computeCacheEntry(
+ entryGroup.computeCacheEntryIfPresent(
entry.getKey(),
memory ->
(secondKey, cacheEntry) -> {
- if (Objects.nonNull(cacheEntry)) {
-
memory.getAndAdd(updater.applyAsInt(cacheEntry.getValue()));
- }
+
memory.getAndAdd(updater.applyAsInt(cacheEntry.getValue()));
return cacheEntry;
});
});
@@ -185,7 +183,7 @@ class DualKeyCacheImpl<FK, SK, V, T extends ICacheEntry<SK,
V>>
if (!secondKeyChecker.test(entry.getKey())) {
return;
}
- entryGroup.computeCacheEntry(
+ entryGroup.computeCacheEntryIfPresent(
entry.getKey(),
memory ->
(secondKey, cacheEntry) -> {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
index d1f8ab9923e..0791fadc325 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
@@ -45,6 +45,9 @@ interface ICacheEntryGroup<FK, SK, V, T extends
ICacheEntry<SK, V>> {
T computeCacheEntry(
final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>>
computation);
+ T computeCacheEntryIfPresent(
+ final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>>
computation);
+
long removeCacheEntry(final SK secondKey);
boolean isEmpty();