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.



---

Reply via email to