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