You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Clebert Suconic (Jira)" <ji...@apache.org> on 2022/08/01 16:12:00 UTC

[jira] [Updated] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

     [ https://issues.apache.org/jira/browse/ARTEMIS-3850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clebert Suconic updated ARTEMIS-3850:
-------------------------------------
    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.

> Eliminate Soft Cache in paging, and add reading options
> -------------------------------------------------------
>
>                 Key: ARTEMIS-3850
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>    Affects Versions: 2.22.0
>            Reporter: Clebert Suconic
>            Assignee: Clebert Suconic
>            Priority: Major
>             Fix For: 2.24.0
>
>          Time Spent: 11h
>  Remaining Estimate: 0h
>
> 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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)