Skip to content

Modernize ActiveMQMessageAudit to be lock-free #2187

Description

@mattrpav

The current ActiveMQMessageAudit is implemented using synchronized blocks around an LRUCache implemented with a LinkedHashMap as an extension to the sync-free ActiveMQMessageAuditNoSync class.

Modern Java language collection (ConcurrentHashMap) and lock-free programming approach can improve performance (especially when there are concurrent producers). Both classes can be replaced with a single, modern implementation.

A modernized MessageAudit:

  • Provide exact same functional capabilities as current ActiveMQMessageAudit/ActiveMQMessageAuditNoSync
  • Allow for shrinking/growing the audit size without completely clearing the list

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions