[ https://issues.apache.org/jira/browse/ARTEMIS-2317?focusedWorklogId=231435&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-231435 ]
ASF GitHub Bot logged work on ARTEMIS-2317: ------------------------------------------- Author: ASF GitHub Bot Created on: 23/Apr/19 15:02 Start Date: 23/Apr/19 15:02 Worklog Time Spent: 10m Work Description: franz1981 commented on issue #2633: ARTEMIS-2317 Avoid long TTSP caused by Page::read using mmap read URL: https://github.com/apache/activemq-artemis/pull/2633#issuecomment-485841941 @clebertsuconic Please don't merge it yet:I need reviews and some help from you and @wy96f and @qihongxu :+1 ---------------------------------------------------------------- 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: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 231435) Time Spent: 20m (was: 10m) > Avoid long TTSP caused by Page::read using mmap read > ---------------------------------------------------- > > Key: ARTEMIS-2317 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2317 > Project: ActiveMQ Artemis > Issue Type: Improvement > Reporter: Francesco Nigro > Priority: Major > Fix For: 2.7.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Page::read is using a readonly mmap to read paged messages: > if the OS mapped regions accessed are not into the OS page cache it can cause > several major page faults that would lead to suffer very long time to > safepoint pauses (it can be seen by enabling > -XX:+PrintGCApplicationStoppedTime). > Such pauses can delay significantly the GC work in a way similar to long > Stop-Of-The-World pauses, blocking the broker long enough that any connected > client will consider it dead or making the broker itself to suicide by > shutdown. > The original proposal to use mmap read has been used to avoid Page::read to > allocate big direct ByteBuffers just to read entirely the paged messages from > the filesystem: implementing chunked reading of those files while re-using > the read ByteBuffer would allow to reduce the number of syscalls to read the > file, avoiding the long time to safepoint pauses too. > Any OS pauses on JNI (ie NIO FileChannel::read) won't cause any safepoint > delay (ie JNI calls are IN a safepoint,not between). -- This message was sent by Atlassian JIRA (v7.6.3#76005)