[
https://issues.apache.org/jira/browse/ARTEMIS-1214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francesco Nigro resolved ARTEMIS-1214.
--------------------------------------
Resolution: Fixed
> Improve performance of read on Paging
> -------------------------------------
>
> Key: ARTEMIS-1214
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1214
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Reporter: Francesco Nigro
> Assignee: Francesco Nigro
>
> Speedup reads trying to exploit the OS Page Cache (eg LMDB does something
> similar) while reading a Page.
> It is accomplished using READ-ONLY mapped regions on the written Page instead
> of using a single SequentialFile::read with a big ( === file size) direct
> ByteBuffer.
> The benefits are:
> - avoid allocating the direct ByteBuffer (no OOM errors while reading tons of
> pages)
> - avoid the additional copy from the Page Cache to the direct ByteBuffer
> - makes uses of the last written (OS) pages directly, improving the read speed
> - avoid a slow JNI call (avoid long time to safepoint issues)
> This can work only with SequentialFile implementations that rely on the OS
> Page Cache (only MAPPED and NIO right now).
> Depending on the file size and the OS the read speedup can be until 6X of the
> original version.
> The memory footprint is improved in way dependent by OS settings (how many
> dirty pages allowed, OS Pages size etc etc), but anyway out of the JVM
> boundaries.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)