You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Asankha C. Perera (JIRA)" <ji...@apache.org> on 2007/03/27 19:54:32 UTC

[jira] Created: (SYNAPSE-86) Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load

Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load
--------------------------------------------------------------------------------------------------------------

                 Key: SYNAPSE-86
                 URL: https://issues.apache.org/jira/browse/SYNAPSE-86
             Project: Synapse
          Issue Type: Improvement
          Components: Transports
    Affects Versions: 1.0-RC1-B2
         Environment: Windows
            Reporter: Asankha C. Perera
         Assigned To: Asankha C. Perera


On Windows Systems the java.nio.channels.Pipe implementation (sun.nio.ch.PipeImpl) uses a socket connection which is both expensive and resource intensive. This causes TCP ports to be exhausted when the NIO transport is being used under load. Linux and Solaris systems optimize this to native calls.

However, Synapse NIO transport must be able to perform well and unhindered even on operating systems like Windows ;-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org


Re: [jira] Updated: (SYNAPSE-86) Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load

Posted by ant elder <an...@gmail.com>.
I gave this a try and it works well for me with Win XP. I can run tens of
thousands of requests with no errors, and it seems about twice as fast as
before.

   ...ant

On 3/27/07, Asankha C. Perera (JIRA) <ji...@apache.org> wrote:
>
>
>      [
> https://issues.apache.org/jira/browse/SYNAPSE-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Asankha C. Perera updated SYNAPSE-86:
> -------------------------------------
>
>     Attachment: pipefix.patch
>
> This is a quick fix to the problem, re-using the buffered pipe code
> already available in the JDK through the PipedInputStream and
> PipedOutputStream. This patch would use the above pure Java pipe
> implementation on Windows but continue to use the native Pipe
> implementations on other operating systems where there are no issues.
>
> This patch is for review and comment by the community - as I know this is
> a simple and quick fix. Also this needs to be tested on Windows - Probably
> by Indika/Ant under load.
>
> > Overcome resource limitations in Windows systems due to use of Pipes
> when the NIO transport is used under load
> >
> --------------------------------------------------------------------------------------------------------------
> >
> >                 Key: SYNAPSE-86
> >                 URL: https://issues.apache.org/jira/browse/SYNAPSE-86
> >             Project: Synapse
> >          Issue Type: Improvement
> >          Components: Transports
> >    Affects Versions: 1.0-RC1-B2
> >         Environment: Windows
> >            Reporter: Asankha C. Perera
> >         Assigned To: Asankha C. Perera
> >         Attachments: pipefix.patch
> >
> >
> > On Windows Systems the java.nio.channels.Pipe implementation (
> sun.nio.ch.PipeImpl) uses a socket connection which is both expensive and
> resource intensive. This causes TCP ports to be exhausted when the NIO
> transport is being used under load. Linux and Solaris systems optimize this
> to native calls.
> > However, Synapse NIO transport must be able to perform well and
> unhindered even on operating systems like Windows ;-)
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: synapse-dev-help@ws.apache.org
>
>

[jira] Updated: (SYNAPSE-86) Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Asankha C. Perera updated SYNAPSE-86:
-------------------------------------

    Attachment: pipefix.patch

This is a quick fix to the problem, re-using the buffered pipe code already available in the JDK through the PipedInputStream and PipedOutputStream. This patch would use the above pure Java pipe implementation on Windows but continue to use the native Pipe implementations on other operating systems where there are no issues. 

This patch is for review and comment by the community - as I know this is a simple and quick fix. Also this needs to be tested on Windows - Probably by Indika/Ant under load.

> Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SYNAPSE-86
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-86
>             Project: Synapse
>          Issue Type: Improvement
>          Components: Transports
>    Affects Versions: 1.0-RC1-B2
>         Environment: Windows
>            Reporter: Asankha C. Perera
>         Assigned To: Asankha C. Perera
>         Attachments: pipefix.patch
>
>
> On Windows Systems the java.nio.channels.Pipe implementation (sun.nio.ch.PipeImpl) uses a socket connection which is both expensive and resource intensive. This causes TCP ports to be exhausted when the NIO transport is being used under load. Linux and Solaris systems optimize this to native calls.
> However, Synapse NIO transport must be able to perform well and unhindered even on operating systems like Windows ;-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org


[jira] Resolved: (SYNAPSE-86) Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SYNAPSE-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Asankha C. Perera resolved SYNAPSE-86.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.0-RC1-B3

Fixed by using virtual buffered pipes' instead of the windows socket pipes. No change for Linux/Solaris etc, and these would use the default nio.Pipe implementation of the JDK through the native calls

Will test this through JProfiler later once I get time

> Overcome resource limitations in Windows systems due to use of Pipes when the NIO transport is used under load
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SYNAPSE-86
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-86
>             Project: Synapse
>          Issue Type: Improvement
>          Components: Transports
>    Affects Versions: 1.0-RC1-B2
>         Environment: Windows
>            Reporter: Asankha C. Perera
>         Assigned To: Asankha C. Perera
>             Fix For: 1.0-RC1-B3
>
>         Attachments: pipefix.patch
>
>
> On Windows Systems the java.nio.channels.Pipe implementation (sun.nio.ch.PipeImpl) uses a socket connection which is both expensive and resource intensive. This causes TCP ports to be exhausted when the NIO transport is being used under load. Linux and Solaris systems optimize this to native calls.
> However, Synapse NIO transport must be able to perform well and unhindered even on operating systems like Windows ;-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org