You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2024/07/23 16:20:00 UTC
[jira] [Commented] (ARTEMIS-4923) Reduce synchronization in ManagementServiceImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-4923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17868119#comment-17868119 ]
ASF subversion and git services commented on ARTEMIS-4923:
----------------------------------------------------------
Commit 10adca5479c7d0aa518c0ffce44008e95a268287 in activemq-artemis's branch refs/heads/main from Justin Bertram
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=10adca5479 ]
ARTEMIS-4923 reduce synchronization in ManagementServiceImpl
The `ManagementService` is used by the broker to register and
unregister components for management as well as send notifications.
When the broker is busy dealing with new sessions and auto-creating
queues, addresses, etc. there is a lot of contention.
To reduce synchronization and improve the service overall this commit
does the following:
- Remove `synchronized` from most methods. In most cases it's
completely unnecessary because the methods are already using a
thread-safe data-structure (e.g. `ConcurrentHashMap`) or more
specific synchronization is already in place (e.g. on
`mbeanServer`).
- Adds new & clarifies existing logging.
- Synchronizes `start` & `stop` methods and adds gates via `started`.
- Simplifies the `sendNotification` method by synchronizing once rather
than twice and performing legitimacy checks sooner.
- Removing an unnecessary overload of the `registereQueue` method.
To be clear, there are no tests included with this commit as there
should be no semantic changes. Existing tests should be sufficient to
identify any regressions.
> Reduce synchronization in ManagementServiceImpl
> -----------------------------------------------
>
> Key: ARTEMIS-4923
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4923
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Reporter: Justin Bertram
> Assignee: Justin Bertram
> Priority: Major
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> The {{ManagementService}} is used by the broker to register and unregister components for management as well as send notifications. When the broker is busy dealing with new sessions and auto-creating queues, addresses, etc. there is a lot of contention in this service. However, much of the synchronization can be removed completely or replaced with more efficient thread-safe underlying data structures.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@activemq.apache.org
For additional commands, e-mail: issues-help@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact