[opensource-dev] New HTTP Library & Project Viewer

Henri Beauchamp sldev at free.fr
Tue Oct 23 17:10:56 PDT 2012


On Tue, 23 Oct 2012 11:05:38 -0700, Dahlia Trimble wrote:

> Would this excerpt from RFC2616 (section 8.2) be relevent?  Perhaps some
> routers and other infrastructure assume this as design criteria:
> 
> "  Clients that use persistent connections SHOULD limit the number of
>    simultaneous connections that they maintain to a given server. A
>    single-user client SHOULD NOT maintain more than 2 connections with
>    any server or proxy. A proxy SHOULD use up to 2*N connections to
>    another server or proxy, where N is the number of simultaneously
>    active users. These guidelines are intended to improve HTTP response
>    times and avoid congestion. "

This is true for web servers, but in fact current browsers don't use
persistent connections excepted in very specific cases (streaming media,
for example).
When your browser fetches the HTML page and associated images from a web
server, it uses non-persistent connections, and the default number of
simultaneous such connections per client is well above 2 (8 to 16, most
of the time, and 32 is not unheard of).

The problem here is that texture servers are *not* web servers, even if
they use HTTP. If LL is going to migrate to HTTP servers and viewer
using persistent connections, then 2 per viewer will definitely not be
enough (what happens when one connection stalls, for example ?... all
the queued texture requests in it then get delayed by 30 or 60 seconds
(i.e. the timeout for failed/stalled connections)... No good).
If the texture servers mainly accept persistent connections (there will
still be some legacy viewers using non-persistent ones during the
transition period), then they can restrict the number of non-persistent
conection per viewer to increase the number of persistent ones.

In any case, the server can always be configured to refuse new
connections from any given client once the maximum the admin chose for
his server is reached (i.e. you can configure your HTTP server to
accept, say, 8 non-persistent connections and 8 persistent ones per
client (=viewer)).

Henri.


More information about the opensource-dev mailing list