Francesco Nigro created ARTEMIS-3444:
----------------------------------------

             Summary: Paging cache entries are not evicted although eligible 
for GC
                 Key: ARTEMIS-3444
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3444
             Project: ActiveMQ Artemis
          Issue Type: Improvement
            Reporter: Francesco Nigro
            Assignee: Francesco Nigro


Artemis Paging cache is using SoftValueLongObjectHashMap to collect page cache 
entries.

Soft references become eligible to be collected by JVM according to 
-XX:SoftRefLRUPolicyMSPerMB configuration and it affects when broker can remove 
such entries from the mentioned SoftValueLongObjectHashMap too.

The mechanism that allow broker to remove any pending memory is by processing 
the ref queue filled by the JVM, but it's going to happen only if there's any 
interaction with the page cache (size/put/remove/get/iteration), and that means 
that if there are no interactions, the broker won't remove such entries and the 
related reference queue will grow larger and larger, leading to huge GC 
reference processing pauses.

The paging cache should be able to remove such entries as soon as the JVM 
enqueue them on the map ref queue, instead.





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to