Github user jbertram commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/2434#discussion_r239530225
--- Diff:
artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/BindingsImpl.java
---
@@ -53,7 +54,13 @@
private final Map<SimpleString, Integer> routingNamePositions = new
ConcurrentHashMap<>();
- private final Map<Long, Binding> bindingsMap = new
ConcurrentHashMap<>();
+ private final Map<Long, Binding> bindingsIdMap = new
ConcurrentHashMap<>();
+
+ /**
+ * This is the same as bindingsIdMap but indexed on the binding's
uniqueName rather than ID. Two maps are
+ * maintained to speed routing, otherwise we'd have to loop through the
bindingsIdMap when routing to an FQQN.
+ */
+ private final Map<SimpleString, Binding> bindingsNameMap = new
ConcurrentHashMap<>();
--- End diff --
Both maps are used for routing messages, but they are used for different
use-cases which I can't see any overlap between so I don't think there's a
problem.
---