(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


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.

Reply via email to