[
https://issues.apache.org/jira/browse/ARTEMIS-2321?focusedWorklogId=233357&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-233357
]
ASF GitHub Bot logged work on ARTEMIS-2321:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 26/Apr/19 08:48
Start Date: 26/Apr/19 08:48
Worklog Time Spent: 10m
Work Description: franz1981 commented on issue #2645: ARTEMIS-2321 Paging
scalability and GC improvement
URL: https://github.com/apache/activemq-artemis/pull/2645#issuecomment-486980042
The most relevant one from a functional point of view is the non-blocking
Page::read on page cache.
I've maintained a separate commit for each improvement to make it easier to
review them separately.
Although not really a bug I've recently looked into many stacktraces showing
many threads blocked on soft cache due to slow `Page::read`, causing the broker
to be unresponsive and suicide itself right after:
this change (together with
https://github.com/apache/activemq-artemis/pull/2633) should make the broker
less prone to became unresponsive under a storm of page cache misses.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 233357)
Time Spent: 20m (was: 10m)
> 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
> Priority: Minor
> Time Spent: 20m
> Remaining Estimate: 0h
>
> 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)