Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
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
- is related to
-
QPID-7762 Add ability to turn off flow to disk
- Closed