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

Flow to disk should consider the size of the resident messages in memory.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • qpid-java-broker-7.0.0
    • Broker-J
    • None

    Description

      Our current algorithm for triggering flow to disk has some shortcomings.

      • the algorithm does not account for memory returned by flow to disk.
        The decision to flow a message a newly arriving message to disk
        considers only the queue's target size and queue's depth. Once a
        queue depth is over its target, all messages will go to disk even if
        all messages have actually been flowed to disk. The same is true
        after recovery: flow to disk will be enabled even though there are no
        messages in RAM.
      • the fact that a queue's target size is assigned by periodically by
        housekeeping means that the queues target size can be wrong for most
        of the time. This is very apparent if a queue is growing; you
        actually see most messages flowing to disk even when there is ample
        memory. The target size is periodically recomputed but only remains
        correct for an instant, the queue returns to the flow to disk state as
        more messages are added. We see this during perf test runs.

      We will change the MessageStore so that it tracks the size of the messages that are held resident in memory. The flow to disk algorithm will be change to by triggered when the resident memory exceeds the virtual host's target size.

      This work is likely to fully replace the recent work done on QPID-7770.

      Attachments

        Issue Links

          Activity

            People

              kwall Keith Wall
              kwall Keith Wall
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: