You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Resolved) (JIRA)" <ji...@apache.org> on 2011/11/16 13:32:51 UTC

[jira] [Resolved] (CAMEL-4686) Messages larger than 64KB can be processed very slowly due to file read buffer of 1 byte

     [ https://issues.apache.org/jira/browse/CAMEL-4686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-4686.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.9.0
                   2.8.3
                   2.7.5
         Assignee: Claus Ibsen

Thanks for the patch.
                
> Messages larger than 64KB can be processed very slowly due to file read buffer of 1 byte
> ----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-4686
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4686
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.6.0
>         Environment: ServiceMix 4.3, Solaris 10
>            Reporter: metatech
>            Assignee: Claus Ibsen
>             Fix For: 2.7.5, 2.8.3, 2.9.0
>
>         Attachments: FileInputStreamCache_buffered.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> When the message body is larger than 64KB, the message is stored on the disk by CachedOutputStream and read back later by FileInputStreamCache.
> A thread dump during a load test shows that the execution is most of the time waiting in the "InputStream.read()" method calls.
> The "truss" output shows that the file is read back 1 byte at a time, which makes the calls very slow.
> A first workaround (setting property "CamelCachedOutputStreamThreshold" to 10000000 on the CamelContext's properties) helped in some case.  
> The cause is that the FileInputStreamCache does not use a BufferInputStream to read on the disk, although the 
> CachedOutputStream does properly use a BufferOutputStream.
> See
> http://java.sun.com/docs/books/performance/1st_edition/html/JPIOPerformance.fm.html#17675
> A trivial patch is attached, which provides a fix.
> Reference :
> http://servicemix.396122.n5.nabble.com/DefaultTraceFormatter-is-very-slow-for-messages-gt-64KB-td4902840.html
> This problem was first noticed when the trace was enabled on the CamelContext, but it occurs also in other scenarios.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira