2011-07-24 28 views
5

我正在考慮使用bittorrent來處理大數據傳播問題,其中數據源是千萬億次,而用戶需要達到幾兆兆字節。一些細節可以bittorrent同行處理播種大量的閒置種子

  • 可能在數以百萬計的種子數
  • 洪流大小從100兆到100Gb的
  • 能夠充當播種機各持有總山洪一個大子的世界各地穩定的簇集合(平均說60%)
  • 想要平均下載幾TB的數據的同時用戶(少於100人)的數量相對較少。

我期待相比,活動任務的數量要小的總可用,但服務質量是重要的,所以必須有每個洪流或一些機制來啓動新的播種機幾個播種機。

我的問題是可以bittorrent客戶端處理播種大量的種子,其中大部分是閒置?我是否需要在羣集中的播種器上掃描種子,或者每個節點是否可以播種其有權訪問的所有種子?哪個客戶會做最好的工作?是否有任何管理種子羣的工具?

我假設跟蹤器可以縮放到這個級別。

回答

0

該協議允許這樣做,但我不知道哪些客戶端可以擴展到數百萬種子。在最糟糕的情況下,您將不得不編寫自己的種子客戶端。

與您的使用案例最相關的協議功能是,當一個對等端連接到另一個對等端時,連接對等端應該首先發送洪流的信息哈希。這意味着可以使用單個偵聽TCP端口播種無限數量的種子,閒置時使用的資源幾乎爲零。

這可以在The BitTorrent Protocol Specification發現:

如果雙方不發送相同的值,連接斷開。一個可能的例外是,如果下載者想要通過單個端口執行多次下載,他們可能會等待傳入連接首先給出下載散列,並且如果它在其列表中,則使用相同的迴應。

我也發現了同樣在此Bittorrent Protocol Specification v1.0

連接的發起者預計將立即發送他們握手。接收者可以等待發起者的握手,如果它能夠同時服務多個種子(種子由他們的info_hash唯一標識)。

但是,有一件事會增加你的負擔,它是跟蹤器。使用正常的跟蹤器協議,每個客戶端都必須定期向跟蹤器通告其每個torrent有多少以及上傳了多少等信息。隨着數百萬種的種子,這會造成一定的負荷。如果你正在編寫你自己的大衆種子客戶端,一個單獨的協議來向跟蹤器發佈你的播種器將是一個好主意。

1

爲了不會在無用的跟蹤器宣告和數百萬的報廢(以及每個宣佈間隔)的開銷下崩潰,您必須限制您的種子集羣只加載當前請求的當前工作集。下載者無論如何都需要從中心位置獲取(下載).torrent文件,並且這可能會觸發將其加載到種子羣集中。或者,通過識別不是源自您的種子集羣的通告來確定特定信息哈希的活動。

rTorrent具有快速恢復功能(意思是當加載了適當的準備好的.torrent時不會發生散列),並且可以通過xmlrpc進行控制,因此您可以停用空閒項目。這樣,一個.torrent下載可以觸發實際數據在接下來的24小時內可用,或者只要羣體中有活動。

4

有2個主要問題:

  1. 每個洪流(典型地)需要宣佈給跟蹤者週期性地,這可能最終會使用帶寬的顯著量。
  2. 的BitTorrent客戶端本身需要寫入的方式與大量山洪

至於跟蹤流量的規模,讓我們假設你有百萬山洪,典型的重新發布時間間隔爲30分鐘,但一些跟蹤器已將其設置爲1小時。讓我們保守一點,並假設您的跟蹤器使用1小時通知間隔。您必須每小時發出1百萬個GET請求,假設每個請求都是400字節和100字節的下降(假設大多數響應不包含任何同位體),那就是不斷下降大約111 kB/s和28 kB/s。這並沒有那麼糟糕,但請記住,TCP需要額外的往返建立連接,所以這又是40個字節的下降和40個字節的增加。

這可以通過僅使用UDP trackers來減輕。然後,您只需要一條連接消息,並且您可以重複使用每個宣告的連接ID。每個通知消息將是100個字節,並且返回的消息也會更緊湊一些,讓我們假設60個字節。這會讓你上升28kB/s,下降16kB/s,只是爲了保持宣傳。爲此,您需要一個具有體面udp追蹤器支持的客戶端(例如,緩存連接標識的客戶端)。

不錯,假設這與您的種子發送的實際數據相比微不足道。

但是,您不一定需要在單獨的數據中心內分散您的種子,您還可以使用HTTP服務器播種種子。所有主要的BitTorrent客戶端都支持http播種,並且不必擔心向跟蹤器通告(該URL會被燒入.torrent本身)。

對於一個可以順利擴展的客戶來說,我並不確定,我還沒有做過任何測量。它應該是相當簡單的,只需生成一百萬個隨機種子並嘗試加載它。

我已經在libtorrent rasterbar上做了一些優化工作,使它在很多種子上都能很好地擴展,但我還沒有嘗試過幾百萬次。

我寫了一篇關於此主題的博客文章,here

+0

Arvid在這裏發佈了更多針對libtorrent的調整技巧:http://libtorrent.org/tuning.html可以對其他客戶端進行類似的優化。 – Encombe

3

您可能正在尋找Hekate 目前,它至多在pre-alpha中,但它幾乎與您所描述的相同。

+1

如果您正在尋找可以擴展到該級別的追蹤軟件,那麼您正在尋找[盜版者](http://erdgeist.org/arts/software/opentracker/),這是海盜灣曾經使用的軟件在他們關閉所有追蹤者之前運行。有了這兩件事情,你就不應該分發你的數據。 – Aranjedeath

+0

Hekate似乎已經死了。太糟糕了 - 這個想法非常好。 – Adobe

相關問題