Re: pipeline - socket

Hi,

If you look at the trace for the 2nd and 3rd ... request, you can see that they
send out the request before the previous response arrive.
However, the response must come back to client in order as there is no mechanism
to distinguish different response, so they cannot come back at the same time.

Jacinle

Marc wrote:

> Hello,
> I am using libwww to send several requests to a host. I'd like all these
> requests to be completed at the same time, and not one after another. If I
> understand the trace well, here is how it goes for the moment: the first
> request opens a new socket, and performs it in a pipe. When the second
> request comes,  it uses the same socket, but doesn't perform it until the
> first is terminated (pending). As I have 20 requests on the same host, it
> takes a very long time to perform them all... I read here that pipelining is
> faster as opening a new socket for each request on a same host. What I don't
> understand is why doesn't pipelining allow all the requests to be completed
> at the same time, and how can I achieve that ?
> Best regards,
>
> Marc Barieux
> Nanocosmos GmbH
>
> Here is some part of the trace :
>
> ***FIRST REQUEST***
> Request..... Created 0x819fe40
> HTAccess.... Accessing document http://www.mydomain.com
> Net Before.. calling 0x805bcd0 (request 0x819fe40, context (nil))
> Net Before.. calling 0x805c220 (request 0x819fe40, context (nil))
> URL Tree.... did NOT find `w3c-AA'
> Credentials. verified
> Net Before.. calling 0x806e8f0 (request 0x819fe40, context (nil))
> URL Tree.... did NOT find `w3c-pep'
> Net Before.. calling 0x805bbd0 (request 0x819fe40, context (nil))
> Net Object.. 0x81a0e08 created with hash 0
> Net Object.. starting request 0x819fe40 (retry=1) with net object 0x81a0e08
> HTTP........ Looking for `http://www.mydomain.com'
> HTHost parse Looking up `www.mydomain.com' on port 80
> Event....... Created event 0x81a1990 with context 0x81a18d0, priority 20,
> and timeout 20000
> Event....... Created event 0x81a19a8 with context 0x81a18d0, priority 20,
> and timeout 20000
> Event....... Created event 0x81a19c0 with context 0x81a18d0, priority 20,
> and timeout 20000
> Host info... added `www.mydomain.com' with host 0x81a18d0 to list 0x81a0c50
> Host connect Grabbing lock on Host 0x81a18d0 with 0x81a0e08
> Host info... Added Net 0x81a0e08 (request 0x819fe40) to pipe on Host
> 0x81a18d0, 1 requests made, 1 requests in pipe, 0 pending
> HTHost...... No ActivateRequest callback handler registered
> HTHost 0x81a18d0 going to state TCP_CHANNEL.
> HTHost 0x81a18d0 going to state TCP_DNS.
> DNS Add..... `www.mydomain.com' with 1 home(s) to 0x81a1af8
> ParseInet... as port 80 on XXX.XXX.XXX.XXX with 1 homes
> HTHost 0x81a18d0 going to state TCP_NEED_SOCKET.
> Socket...... Created 5
> Net Manager. Increasing active sockets to 1, 0 persistent sockets
> Socket...... Turned off Nagle's algorithm
> Socket...... Non-blocking socket
> Channel..... Hash value is 5
> Channel..... Added 0x81a2f08 to list 0x81a2ef8
> HTHost 0x81a18d0 going to state TCP_NEED_CONNECT.
> HTDoConnect. WOULD BLOCK `www.mydomain.com'
>
> What does HTDoConnect. WOULD BLOCK `www.mydomain.com' exactly mean ???
>
> ***SECOND REQUEST***
> Request..... Created 0x81d4068
> HTAccess.... Accessing document http://www.mydomain.com
> Net Before.. calling 0x805bcd0 (request 0x81d4068, context (nil))
> Net Before.. calling 0x805c220 (request 0x81d4068, context (nil))
> URL Tree.... did NOT find `w3c-AA'
> Credentials. verified
> Net Before.. calling 0x806e8f0 (request 0x81d4068, context (nil))
> URL Tree.... did NOT find `w3c-pep'
> Net Before.. calling 0x805bbd0 (request 0x81d4068, context (nil))
> Net Object.. 0x81d4378 created with hash 2
> Net Object.. starting request 0x81d4068 (retry=1) with net object 0x81d4378
> HTTP........ Looking for `http://www.mydomain.com'
> HTHost parse Looking up `www.mydomain.com' on port 80
> Host connect Host 0x81a18d0 already locked with 0x81a0e08
> Host info... Added Net 0x81d4378 (request 0x81d4068) as pending on Host
> 0x81a18d0, 1 requests made, 1 requests in pipe, 1 pending

Received on Monday, 8 May 2000 08:10:25 UTC