Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-6164

queue sendLock prevents concurrent journal updates

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.13.0
    • Fix Version/s: 5.14.0
    • Component/s: Broker, Message Store
    • Labels:
      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.

        Issue Links

          Activity

          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 499e39e52c392fcc6d897a526afbbd3b144121e2 in activemq's branch refs/heads/master from Gary Tully
          [ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=499e39e ]

          https://issues.apache.org/jira/browse/AMQ-6164 - allow journal write batching on a single destination

          Show
          jira-bot ASF subversion and git services added a comment - Commit 499e39e52c392fcc6d897a526afbbd3b144121e2 in activemq's branch refs/heads/master from Gary Tully [ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=499e39e ] https://issues.apache.org/jira/browse/AMQ-6164 - allow journal write batching on a single destination
          Hide
          gtully Gary Tully added a comment -

          multiple producers on a single destination can now get the benefit of write batching to the journal. They can benefit from a shared disk fsync.
          Depending on your disk speed and usage pattern, this can increase through put

          Show
          gtully Gary Tully added a comment - multiple producers on a single destination can now get the benefit of write batching to the journal. They can benefit from a shared disk fsync. Depending on your disk speed and usage pattern, this can increase through put

            People

            • Assignee:
              gtully Gary Tully
              Reporter:
              gtully Gary Tully
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development