Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3780

[Java Broker] Using multiple consumers on a large (e.g. 1million entries+) queue may become excessively slow

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.14
    • Fix Version/s: 0.15
    • Component/s: Broker-J
    • Labels:
      None

      Description

      If there are multiple consumers on a queue, a certain percentage of acknowledgements will not be at the head of the queue because consumers will not act in lock step. Every time a message not at the head of the queue is consumed we increment the scavenge count to indicate that we should scan the queue for deleted entries and remove them. If the queue is very large then this will take a long time. Clearing down a very large queue with multiple consumers will thus become very expensive.

      We can reduce the cost of scavenging by keeping a record of the high watermark of deleted entries that weren't at the head of the queue, and only scavenging the queue to a point beyond the high watermark

        Attachments

          Activity

            People

            • Assignee:
              rgodfrey Rob Godfrey
              Reporter:
              rgodfrey Rob Godfrey
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1h
                1h
                Remaining:
                Remaining Estimate - 1h
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified