You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/05/07 10:05:32 UTC

[camel] branch main updated: CAMEL-19060: use LongAdder in DefaultInflightRepository to reduce contention

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

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new f5c6c84447e CAMEL-19060: use LongAdder in DefaultInflightRepository to reduce contention
f5c6c84447e is described below

commit f5c6c84447e797969307b74758a43e6b7c7fdd2d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Sat May 6 16:13:08 2023 +0200

    CAMEL-19060: use LongAdder in DefaultInflightRepository to reduce contention
---
 .../impl/engine/DefaultInflightRepository.java     | 26 +++++++++++-----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInflightRepository.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInflightRepository.java
index 212e59309cf..30650e6a079 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInflightRepository.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultInflightRepository.java
@@ -22,7 +22,7 @@ import java.util.Comparator;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.LongAdder;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -42,14 +42,14 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
 
     private static final Logger LOG = LoggerFactory.getLogger(DefaultInflightRepository.class);
 
-    private final AtomicInteger size = new AtomicInteger();
+    private final LongAdder size = new LongAdder();
     private final ConcurrentMap<String, Exchange> inflight = new ConcurrentHashMap<>();
-    private final ConcurrentMap<String, AtomicInteger> routeCount = new ConcurrentHashMap<>();
+    private final ConcurrentMap<String, LongAdder> routeCount = new ConcurrentHashMap<>();
     private boolean inflightExchangeEnabled;
 
     @Override
     public void add(Exchange exchange) {
-        size.incrementAndGet();
+        size.increment();
 
         if (inflightExchangeEnabled) {
             inflight.put(exchange.getExchangeId(), exchange);
@@ -58,7 +58,7 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
 
     @Override
     public void remove(Exchange exchange) {
-        size.decrementAndGet();
+        size.decrement();
 
         if (inflightExchangeEnabled) {
             inflight.remove(exchange.getExchangeId());
@@ -67,28 +67,28 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
 
     @Override
     public void add(Exchange exchange, String routeId) {
-        AtomicInteger existing = routeCount.get(routeId);
+        LongAdder existing = routeCount.get(routeId);
         if (existing != null) {
-            existing.incrementAndGet();
+            existing.increment();
         }
     }
 
     @Override
     public void remove(Exchange exchange, String routeId) {
-        AtomicInteger existing = routeCount.get(routeId);
+        LongAdder existing = routeCount.get(routeId);
         if (existing != null) {
-            existing.decrementAndGet();
+            existing.increment();
         }
     }
 
     @Override
     public int size() {
-        return size.get();
+        return size.intValue();
     }
 
     @Override
     public void addRoute(String routeId) {
-        routeCount.putIfAbsent(routeId, new AtomicInteger());
+        routeCount.putIfAbsent(routeId, new LongAdder());
     }
 
     @Override
@@ -98,8 +98,8 @@ public class DefaultInflightRepository extends ServiceSupport implements Infligh
 
     @Override
     public int size(String routeId) {
-        AtomicInteger existing = routeCount.get(routeId);
-        return existing != null ? existing.get() : 0;
+        LongAdder existing = routeCount.get(routeId);
+        return existing != null ? existing.intValue() : 0;
     }
 
     @Override