On Fri, May 04, 2007 at 06:57:21PM +0900, Georgi Georgiev wrote:
> > Your webservers will need to support HTTP Range requests for this to
> > work. The BitTorrent clients will send range requests for 32K..256K
> > blocks (powers of two only).
> How is HTTP BT seeding different than ordinary mirroring (assuming the
> server supports Range)? As I don't need to do anything on the server
> side (that's my understanding for the moment at least), is there a
> particular reason why I should care? We (mirrors) are still going to
> serve that same content that we have already agreed to serve.
I asked it mainly as courtesy of the mirrors, but also because I was
concerned about any cases where it might cause trouble for the mirrors:
- In the best case, if your-choice-httpd supports both KeepAlive and
Range, then the BitTorrent client will pick a point N, and just
sequentially ask for block N, N+1, N+2, ... on that single HTTP
connection - this takes advantage of disk read-ahead on the server
side.
- If your httpd does not support range, there's going to be a separate
connection for each block, which might accidentally trigger some abuse
detection systems. A client with 1Mbit could cause 3 connections per
second to your mirror.
- If your httpd does not support Range, the BitTorrent client would
fail-out.
- From a discussion that was asked of me on #gentoo-mirrors, if your
mirror server used some non-default IO readahead (eg posix_fadvise),
there's also the possibility that it would increase your disk
thrashing since it asks for lots of small chunks instead of big ones.
--
Robin Hugh Johnson
Gentoo Linux Developer & Council Member
E-Mail : robbat2@g.o
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
|