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

Fields

No fields configured for issues without a type.

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions