[
https://issues.apache.org/activemq/browse/AMQ-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully updated AMQ-1689:
----------------------------
Attachment: fileAppenderBatch.patch
Note: the minimum delay would need to configurable I guess.
If the concept is reasonable, more performance analysis of the change is
required. My analysis using some of the existing unit tests shows that it
behaves a little better in the general case and a lot better in the perf test
case included.
> (NIO)DataFileAppender does to many sync or force calls when there is little
> or no concurrency
> ---------------------------------------------------------------------------------------------
>
> Key: AMQ-1689
> URL: https://issues.apache.org/activemq/browse/AMQ-1689
> Project: ActiveMQ
> Issue Type: Improvement
> Components: Message Store
> Affects Versions: 5.1.0
> Environment: Windows, NIO force and File sync perform poorly
> Reporter: Gary Tully
> Priority: Minor
> Attachments: fileAppenderBatch.patch
>
>
> Where NIO channel force and fileDescriptor.sync perform poorly and there is
> little concurrently, the kaha DataFileAppender performs poorly.
> A test case where a single producer and consumer operate from either ends of
> a networked pair of brokers shows the problem. It takes ~3 minutes to send
> 1000 messages on windows!. The problem is that 70% of the time is spent in
> NIO channel.flush()
> The flush is batched if there are concurrent writes, but otherwise, a single
> write is flushed immediately.
> My proposal is to have the batch processor batch till a batch is full or till
> a sync flag is present in a write command or till some timeout expires or if
> the appender is closed.
> This reduces the number of force calls and with this change, my test case can
> do 1000 messages in ~1minute.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.