[
https://issues.apache.org/jira/browse/ARTEMIS-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francesco Nigro updated ARTEMIS-2849:
-------------------------------------
Description:
By default ASYNCIO using TimedBuffer are zeroing the ByteBuffers used to
perform the write on the journal: under load TimedBuffer can be big enough that
zeroing would cost the same as copying the actual content into it, hence saving
the zeroing is quite beneficial to save CPU time and increase IOPS.
NIO and MAPPED doesn't need it because they already use directly the
TimedBuffer's accumulation buffer to perform writes (that's never zeroed,
because it already contains the content that they expect to write into the
journal), but changing ASYNCIO need to adjust the same calls on NIO and MAPPED
for completeness.
was:
By default ASYNCIO using TimedBuffer are zeroing the ByteBuffers used to
perform the write on the journal: under load TimedBuffer can be big enough that
zeroing would cost the same as copying the actual content into it, hence saving
the zeroing is quite beneficial to save CPU time and increase IOPS.
NIO and MAPPED doesn't need it because they already use directly the
TimedBuffer's accumulation buffer to perform writes (that's never zeroed,
because it already contains the content that they expect to write into the
journal), but still changing ASYNCIO need to adjust the same calls on NIO and
MAPPED for completeness.
> Eliminate zeroing of buffers while writing the ASYNCIO journal
> --------------------------------------------------------------
>
> Key: ARTEMIS-2849
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2849
> Project: ActiveMQ Artemis
> Issue Type: Test
> Components: Broker
> Reporter: Francesco Nigro
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> By default ASYNCIO using TimedBuffer are zeroing the ByteBuffers used to
> perform the write on the journal: under load TimedBuffer can be big enough
> that zeroing would cost the same as copying the actual content into it, hence
> saving the zeroing is quite beneficial to save CPU time and increase IOPS.
> NIO and MAPPED doesn't need it because they already use directly the
> TimedBuffer's accumulation buffer to perform writes (that's never zeroed,
> because it already contains the content that they expect to write into the
> journal), but changing ASYNCIO need to adjust the same calls on NIO and
> MAPPED for completeness.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)