Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.22.0
-
None
-
None
Description
Paging was written a few years ago, and it was using SoftCache from the JDK.
SoftCache exists with the promise that it would eliminate entries when the memory is low.
As a result, when actually SoftCache is removed, the JVM is already pegged and nothing really work when it gets to that point.
So, historically we then added a max-size to the PageCache and treated it as a regular HashMap, and in case it ever released instance, we would read the page back.
That introduced an issue that the messages would have to read back when the cursor moved. a partial reading was introduced but still generated a lot of pressure in IO depending on how things happened.
So, to simplify things, we are now reading the current file and just distributing messages to queues. and messages will just be regular messages after read from paging. A lot of things simplified.
Attachments
Issue Links
- links to
Commit 342565d4c1475e974c5cf874ad419842f037e976 in activemq-artemis's branch refs/heads/main from Clebert Suconic
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=342565d4c1 ]
ARTEMIS-3850Eliminate Page Soft Cache. Add Option to read messages based on sizing.