[ 
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)

Reply via email to