On Sun, Jan 09, 2005 at 02:46:06PM +0100, Robert Lemmen wrote:
> - zsync fails if the server returns less ranges than requested. i have
>   not yet reproduced that one as i didn't get around to talk my web
>   server into returning less ranges, but i think the proper handling
>   would be to remember how many ranges were returned and request only
>   that many from now on.

Interesting; this has lots of potential interactions with HTTP
pipelining and HTTP/1.0 vs HTTP/1.1 negotiation (e.g. if we have already
sent pipelined requests to the server for later ranges before we find
out that earlier ones are unsatisfied). The current code can cope with
this particular case, as we don't send a second request until we see the
response headers of the first - but this is going to be slow, if the
server is sending only one block per response.

HTTP is not a very efficient transport for the data zsync needs if the
server doesn't do multipart responses - it raises the overhead from HTTP
headers a lot, as discussed in
<http://zsync.moria.org.uk/paper/ch02s04.html>. 

It's even worse for HTTP/1.0 only servers, as they will only be able to
transfer one block per connection. The overhead of a connection per 1024
or 2048 block will be quite intolerable. What web server are you seeing
this no-multipart behaviour with - is it a particular configuration of a
common server, or a standard behaviour of an uncommon httpd, or what?

Anyway, the current failure is unintentional and I will fix it, but I
bet the performance is still very sub-optimal. I may well blacklist
servers with certain zsync-unfriendly behaviour - I don't want it
connection-flooding bad web servers - if we find these are a problem.

I have fixed the proxy-string bug for the next release BTW (#289424).

-- 
Colin Phipps <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to