Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/2484 @michaelandrepearce Done, the PR has been sent, now we can just wait the perf results on it :) I have improved quite a bit the live page cache behaviour/reliability (especially if OOME), but sadly I see that the most called method `getMessage` cannot be improved anymore without making the lock-free code a real nightmare. The original version was O(n) depending which message was queried, because it needs to walk the entire linked list of paged messages. In my version I have amortized the cost by using an interesting hybrid between an ArrayList and a LinkedList, similar to https://en.wikipedia.org/wiki/Unrolled_linked_list, but (very) optimized for addition. I'm mentioning this, because is a long time I want to design a single-threaded version of this same data-structure to be used as the main datastructure inside QueueImpl.
---