GitHub user franz1981 opened a pull request:
https://github.com/apache/activemq-artemis/pull/1256
ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
This is the list of improvements:
- NIO/ASYNCIO new TimedBuffer with adapting batch window heuristic
- NIO/ASYNCIO improved TimedBuffer write monitoring with lightweight
concurrent performance counters
- NIO/ASYNCIO journal/paging operations benefit from less buffer copy
- NIO/ASYNCIO any buffer copy is always performed with raw batch copy using
SIMD instrinsics (System::arrayCopy) or memcpy under the hood
- NIO improved clear buffers using SIMD instrinsics (Arrays::fill) and/or
memset
- NIO journal operation perform by default TLABs allocation pooling (off
heap) retaining only the last max sized buffer
- NIO improved file copy operations using zero-copy FileChannel::transfertTo
- NIO improved zeroing using pooled single OS page buffer to clean the file
+ pwrite (on Linux)
- NIO deterministic release of unpooled direct buffers to avoid OOM errors
due to slow GC
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/franz1981/activemq-artemis buffer_pooling
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/activemq-artemis/pull/1256.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1256
----
commit 25791c304a794d9c7801620cbf7cecdd9c19c0c8
Author: Francesco Nigro <[email protected]>
Date: 2017-05-02T09:47:44Z
ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---