[ https://issues.apache.org/activemq/browse/AMQ-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gary Tully closed AMQ-1689. --------------------------- > (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 > Assignee: Hiram Chirino > Priority: Minor > Fix For: 5.1.0 > > 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.