Return-Path: Delivered-To: apmail-incubator-cxf-dev-archive@locus.apache.org Received: (qmail 31713 invoked from network); 13 Dec 2006 12:19:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Dec 2006 12:19:18 -0000 Received: (qmail 89917 invoked by uid 500); 13 Dec 2006 12:18:40 -0000 Delivered-To: apmail-incubator-cxf-dev-archive@incubator.apache.org Received: (qmail 89370 invoked by uid 500); 13 Dec 2006 12:18:35 -0000 Mailing-List: contact cxf-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-dev@incubator.apache.org Received: (qmail 88747 invoked by uid 99); 13 Dec 2006 12:18:24 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Dec 2006 04:18:23 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of eoghan.glynn@iona.com designates 62.221.12.33 as permitted sender) Received: from [62.221.12.33] (HELO emea-smg1.iona.com) (62.221.12.33) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Dec 2006 04:17:49 -0800 Received: from emea-ems1.ionaglobal.com (dutec.ie [10.2.1.125]) by emea-smg1.iona.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id kBDDFbYC018783 for ; Wed, 13 Dec 2006 13:15:37 GMT X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Subject: RE: Port HttpTransport from Jetty5 toJetty6 Date: Wed, 13 Dec 2006 12:17:07 -0000 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Port HttpTransport from Jetty5 toJetty6 Thread-Index: AcceoydcMvcd+3GuRHuzPCsCdnHxTQACl0iw From: "Glynn, Eoghan" To: X-Virus-Checked: Checked by ClamAV on apache.org It depends on whether Jetty6 provides a truly asynchronous API for processing incoming HTTP requests. Note that this question is orthogonal to Jetty6 leveraging the non-blocking nature of Java NIO to reduce the number of threads required to manage I/O (i.e. to avoid a blocking accept per listener and a blocking read per incoming connection). Obviously using NIO to reduce the number of IO threads in this way is a good thing, and clearly Jetty6 will be of benefit to us there. However, I think the Xfire AsyncWeb concept went a bit further than this (correct me, DanD, if necessary). The idea would be to also avoid blocking the dispatch threads where possible. For example if a thread processing a chunked request from client c1 detects a pause in the stream of incoming chunks, this thread could conceivably start processing a request from another client in the meantime. Note that this is a different scenario to HTTP pipelining, where a individual client may issue a sequence of idempotent requests on a *single* connection, without waiting for the responses. Since the PUT verb is obviously non-idempotent, we wouldn't generally be in a position to interleave requests on the client-side in this way.=20 In any case, I don't know if Jetty6 provides a non-blocking API throughout (e.g. whether HTTPRequest.getInputStream().read() is non-blocking). If it does, then we'd have the tools to fully address CXF-228. Otherwise we'd need to look at something like AsyncWeb[1]. Cheers, Eoghan [1] http://docs.safehaus.org/display/ASYNCWEB/Home > -----Original Message----- > From: Bozhong Lin [mailto:blin@iona.com]=20 > Sent: 13 December 2006 10:40 > To: cxf-dev@incubator.apache.org > Subject: Re: Port HttpTransport from Jetty5 toJetty6 >=20 > Willem, >=20 > Does this mean that ApacheCXF will get asynchronous HTTP=20 > support [1] automatically by doing this porting? Will porting=20 > have any performance implication to Apache CXF? If so, it=20 > might be a good idea to measure performance before we commit=20 > any porting code. >=20 > Regards, > Bo >=20 > [1] https://issues.apache.org/jira/browse/CXF-228 >=20 > Willem Jiang wrote: > > Hi , > > Since Jetty6 provides NIO support, I'd like to port the=20 > HttpTransport=20 > > from Jetty5 to Jetty6 [1]. > > > > I just went through the http code, here is something that I just=20 > > figured out. > > Please point out if I am wrong. > > > > Porting > > 1. In HttpTransport the mainly class related with Jetty5 is=20 > > JettyHTTPServerEngine, JettyHttpDestination, JettySslListenerFactory > > > > 2. Replace the Jetty5 class with Jetty6 > > Jetty 5 Jetty 6 > > SocketListener SelectChannelConnector > > SslListener SSLSelectChannelConnector > > HttpHandler Handler > > HttpContext ContextHandler > > > > [1] > >=20 > http://docs.codehaus.org/display/JETTY/Porting+from+jetty5.x+to+jetty6 > > > > Cheers, > > Willem. >=20