activemq-artemis/artemis-server
Justin Bertram 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.
2024-07-23 09:19:18 -07:00
..
src ARTEMIS-4923 reduce synchronization in ManagementServiceImpl 2024-07-23 09:19:18 -07:00
enable-log-bundle-annotation-processor ARTEMIS-4872: use explicit annotationProcessorPaths compiler config 2024-06-28 16:49:27 +01:00
pom.xml [maven-release-plugin] prepare for next development iteration 2024-06-12 11:58:53 -04:00