activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiram Chirino (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1689) (NIO)DataFileAppender does to many sync or force calls when there is little or no concurrency
Date Fri, 25 Apr 2008 14:24:43 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=42451#action_42451
] 

Hiram Chirino commented on AMQ-1689:
------------------------------------

BTW.. not 100% sure how much this will help.

So lets say that sync call is taking a long time to complete.. the client writes will start
gettting batched up in the next batch.. then by the time the sync completes the next write
batch it gets will be > 1 since several calls should have batched up.



> (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.


Mime
View raw message