W3C home > Mailing lists > Public > www-lib@w3.org > April to June 2000

pipeline - socket

From: Marc <barieux@nanocosmos.de>
Date: Mon, 8 May 2000 12:44:36 +0200
To: "Www-Lib@W3. Org (E-Mail)" <www-lib@w3.org>
Message-ID: <000001bfb8da$683e7c10$0801a8c0@neptun>
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 06:38:55 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:36 GMT