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

Reply via email to