写点什么

WDT:多 TCP 链路的数据传输开源库

  • 2015-07-27
  • 本文字数:998 字

    阅读完需:约 3 分钟

作为国际著名的社交网站, Facebook 与开源项目一直关系密切。目前,其设立的开源项目个数已经超过200 个。这些开源项目在为广大开发人员提供便利的同时,也为Facebook 带来了各方面丰厚的回报。近日,Facebook 又公布了一个开源项目——超高速数据传输工具(Warp speed Data Transfer,WDT)。接下来,本文就对WDT 项目进行简要介绍。

从2004 年上线开始,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 项目进行改进。其关注点包括重新构建代码来使用无需复制的流/ 缓存流水线和处理乱序的报文等。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-07-27 08:459961
用户头像

发布了 268 篇内容, 共 124.7 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

打字大师3-盲打实践Master of Typing 3 - Practice for Mac

Rose

实用的Web服务器管理软件goPanel for Mac v2.9.6版

Mac相关知识分享

MacBook web服务器 Mac软件 mac下载

Parallels Desktop 18 for mac(兼容Intel和M系列虚拟机)v18.3.2永久激活版

Rose

ERC20开发:构建标准化的代币经济

dappweb

ERC20 区块链开发

油猴Safari浏览器辅助插件Tampermonkey 中文版下载

Rose

万字长文:在 Go 中如何优雅的使用 wire 依赖注入工具提高开发效率?下篇

江湖十年

golang 后端 Go web Go 面试题 面经 后端 大厂

Invisor for Mac 媒体文件信息查看软件

Rose

实现智能化生产车间的MES管理系统

万界星空科技

智能制造 mes 万界星空科技 数字化车间 车间管理

mac office 365 商业专业版破解

Rose

EverWeb for Mac(网页设计软件)v4.2.0中文版

Mac相关知识分享

网页设计 Mac软件 mac下载

潞晨训推一体机,画出大模型到企业的一条龙路线图

脑极体

AI

大模型应用之路:从提示词到通用人工智能(AGI)

京东科技开发者

ERC721开发:打造独一无二的数字资产

dappweb

区块链 defi 元宇宙 ERC721 区块链开发

元宇宙和链游的疯狂故事对经济有什么影响?

区块链开发团队DappNetWork

链游开发:探索游戏与区块链的交汇点

区块链开发团队DappNetWork

独特DJ混音创作软件DJ Mix Pads 2 - Remix Version

Rose

优秀的电子书生成工具Vellum for Mac v3.7.4激活版

Rose

Autodesk AutoCAD 2025中文版详细图文安装教程

Rose

CloudMounter for mac(云盘本地加载工具)v4.6版

Mac相关知识分享

MacBook Mac软件 mac下载

Permute 3全能媒体格式转换器 mac Permute 3中文版下载

Rose

精彩回顾!安全智能体的前沿技术研究与实践

云起无垠

在鸿蒙系统中处理ETS层与C++层之间的数组传递

彭康佳

c android 鸿蒙 native

TDengine 3.3.0.0 引入图形化管理工具、复合主键等 13 项关键更新

TDengine

数据库 tdengine 时序数据库

万字长文:在 Go 中如何优雅的使用 wire 依赖注入工具提高开发效率?上篇

江湖十年

golang 后端 Go web 依赖注入 Go 面试题 面经 后端 大厂

sublime text代码编辑器 中文设置教程

Rose

中国LED显示屏产业的挑战与机遇

Dylan

产业 LED显示屏 全彩LED显示屏 led显示屏厂家 市场

WDT:多TCP链路的数据传输开源库_Meta_张天雷_InfoQ精选文章