【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:459698
用户头像

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

关注

评论

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

不会 Lua?Python 助你快速上手 Apache APISIX 插件开发

API7.ai 技术团队

Python Apache 开源 API网关 APISIX

云智一体破解AI落地“最后一公里”难题,企业智能化转型再获新利器

百度大脑

人工智能

Vite + Vue3 + OpenLayers 手动控制缩放级别

德育处主任

大前端 地图 vite openlayers Vue 3

物联世界2021南京物联网展览会

南京专业智博会

物联网展览会 物联网论坛会 物联网智博会

Opus从入门到精通(一):简介

轻口味

android 音视频 9月日更

架构实战营-模块三作业

南山先生

「架构实战营」

Apache APISIX 为 KubeSphere 提供更好用的网关及 K8S Ingress Controller

API7.ai 技术团队

Apache 开源 API网关 APISIX KubeSphere

南京主题展2021国际大数据产业展会/论坛会

南京专业智博会

大数据 智博会 南京智博会

2021南京国际智慧工地装备展览会

南京专业智博会

智博会 智慧工地展览会 智慧工地论坛会

乘风破浪携手共赢——博睿数据深圳渠道大会圆满落幕

博睿数据

Go 专栏|并发编程:goroutine,channel 和 sync

AlwaysBeta

Go 语言

2021年第十四届南京智慧城市展览会

南京专业智博会

智博会 智慧城市展览会 智慧城市论坛会

《中国梦》打造数亿中产阶级!疯了,疯了,全涨疯了!!

CECBC

CSS交互动画指南之keyframes

devpoint

CSS css3 9月日更

内网渗透横向攻击流程

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

直播预告丨走进云溪数据库之高可用方案

浪潮云

云计算

研发工具链介绍

百度开发者中心

学习 最佳实践 方法论 研发工具

阿里大佬怒写“Java初学者宝典”,让你就业没压力

Java 阿里巴巴 程序员 面试 计算机

(AL智博会)2021南京国际人工智能主题展

南京专业智博会

人工智能展览会 人工智能论坛会 人工智能智博会

雪花算法,什么情况下发生 ID 冲突?

Java 架构 分布式 算法

交Y所K线机器人系统开发功能介绍(源码搭建)

量化系统19942438797

机器人 k线

模块三作业:学生管理系统架构设计文档

apple

区块链“牵手”金融 面临诸多挑战

CECBC

联邦学习框架浅析

趣链科技

Android的Ftp断点上传---Aria使用笔记

Changing Lin

9月日更

架构实战营 - 模块三作业

Alex.Wu

面试官zookeeper 是如何实现一致性的?我大意了,让我回去等通知

Java 面试 分布式 后端

二本Java菜鸟9面字节遭虐,苦修数月深造这份 Java面试宝典,终进阿里

Java 程序员 架构 面试 计算机

【Vuex 源码学习】第四篇 - Vuex 中 Getters 的实现

Brave

源码 vuex 9月日更

JavaScript 进阶(二)下

Augus

JavaScript 9月日更

中原银行分布式缓存实践

中原银行

redis 中间件 分布式缓存 中原银行

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