Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.13.0
-
None
Description
concurrent producers contend on the queue sendlock rather than on the journal, preventing batching or in the case of jdbc, concurrent writes to the db.
The sendlock protects message order, however order is ultimately determined by the sequence id assigned by the persistence adapter.
The ground work for aligning the cursors with the journal sequence ids was layed in https://issues.apache.org/jira/browse/AMQ-4485 and https://issues.apache.org/jira/browse/AMQ-5266
With the ordering between transacted and non transacted producers overlapping the cursor already respects the journal ordering, the sendLock need no longer protect the journal update.
With parallel journal updates we get the benefit of write batching (sharing an fsync) for multiple producers on a single destination.