WDT 多TCP鏈路的資料傳輸開源庫

2021-09-17 20:04:49 字數 1065 閱讀 8625

作為國際著名的社交**,facebook與開源專案一直關係密切。目前,其設立的開源專案個數已經超過200個。這些開源專案在為廣大開發人員提供便利的同時,也為facebook帶來了各方面豐厚的回報。近日,facebook又公布了乙個開源專案——超高速資料傳輸工具(warp speed data transfer,wdt)。接下來,本文就對wdt專案進行簡要介紹。

\\ 從2023年上線開始,facebook迅速發展。時至今日,facebook每月的活躍使用者量超過20億。在西方的萬聖節,facebook每天所接收到的**數量更是多達20幾億張。為了滿足使用者的巨大需求,該公司先後在美國奧勒岡州和北卡羅來納州等多個地方建立了資料中心。那麼,如何在資料中心內部的主機之間以及資料中心之間進行高效的資料傳輸就成了迫切需要解決的問題。為此,facebook設立了wdt專案。

\\ wdt可以被視為乙個嵌入式的庫或者命令列工具,其目的是在儘量減少資源(cpu/記憶體等)消耗的情況下,利用多個tcp路徑提高兩個系統之間傳送檔案的效率。為了提高**的可移植性,facebook儘量減少了wdt的依賴關係。由此,**的編譯時間也大量減少,並使得專案輕量化。此外,wdt沒有採用異常,以保證傳輸效率和**的易於整合。

\\ 在傳輸機制方面,wdt採用了阻塞式執行緒io,保證在任何點都會有執行緒在讀和寫。這樣,資料就可以被緩衝在雙向傳輸道路上,使得最小核心/使用者空間切換的情況下,每個子系統仍然處於忙碌狀態。正是這樣的雙向傳輸機制進一步保證了系統吞吐率的最大化。

\\ 目前,wdt**已經託管在github中。其**中包含了乙個小的命令列工具wcp.sh,用來測試傳輸效能。據透露,在facebook內部傳輸系統之間的rocksdb快照時,wdt通過長距離和高延遲的傳輸鏈路提供了高達600mb/s的傳輸速率。相比於之前高度優化的基於http的傳輸方案,wdt傳輸速率約是其3倍左右,且系統資源消耗更少。在沒有進行節流控制的情況下,wdt可以輕易使得40gb/s的網絡卡飽和,並得到近乎理論的鏈路傳輸速度(大於4gb/s)。

\\ 未來,facebook會借助開源社群繼續對wdt專案進行改進。其關注點包括重新構建**來使用無需複製的流/快取流水線和處理亂序的報文等。

\\ 感謝徐川對本文的審校。

\\

WDT 多TCP鏈路的資料傳輸開源庫

作為國際著名的社交 facebook與開源專案一直關係密切。目前,其設立的開源專案個數已經超過200個。這些開源專案在為廣大開發人員提供便利的同時,也為facebook帶來了各方面豐厚的回報。近日,facebook又公布了乙個開源專案 超高速資料傳輸工具 warp speed data transf...

TCP的資料傳輸小結

通常每乙個互動按鍵都會產生乙個資料分組,也就是說,每次從客戶傳到伺服器的是乙個位元組的按鍵 而不是每次一行 通常tcp在接受到資料時並不立即傳送ack 相反,它推遲傳送,以便將ack與需要沿該方向傳送的資料一起傳送。絕大多數實現採用的時延為200ms,也就是說,tcp將以最大200ms的時延等待是否...

TCP套接字的資料傳輸

傳送資料 函式send用來在tcp套接字上傳送資料 include include 函式原型 ssize t send int sockfd,const void msg,size t len,int flags 函式send只能對處於連線狀態的套接字使用,引數sockfd為已經建立好連線的套接字描...