You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Francesco Nigro (JIRA)" <ji...@apache.org> on 2019/04/26 08:39:00 UTC

[jira] [Created] (ARTEMIS-2321) Paging scalability and GC improvements

Francesco Nigro created ARTEMIS-2321:
----------------------------------------

             Summary: Paging scalability and GC improvements
                 Key: ARTEMIS-2321
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2321
             Project: ActiveMQ Artemis
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 2.8.0
            Reporter: Francesco Nigro


PageCursorProviderImpl::getPageCache's on cache miss is blocking the whole softCache until the requested page isn't fully read, making other threads unable to make progress by querying the cache.
It would be better to make the page read operation a non-blocking operation for the whole cache, allowing threads that need different pageId to make progress.

Other improvements:
* PageCursorProviderImpl can use specialized primitive hash maps to reduce memory footprint (that would cause some page entries to be collected prematurely)
* PageCache children can avoid to maintain a reference to a Page
* PagingStoreImpl perform many unnecessary volatile stores/loads and some fields can be turned into plain ones, avoiding expensive atomic operations






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)