Gingko——百度内网用于数据分发的P2P传输工具
刘明(百度)
2014-08-12 13:30
永泰大宴会厅B
演讲幻灯片:PDF
演讲视频:Video

Gingko当前应用于百度内部100多个产品线的数据分发、配置更新、模块部署、词典传输等场景中。公司内各产品线每天使用gingko进行1600w次数据下载操作,下载的总数据量在700TB+,覆盖2w+台机器。同时,当前能够支持 在30分钟内分发一份数据(700M左右)到全公司所有服务器上(数十万台机器)。

Gingko分为单机上的客户端gko3和服务端tracker两部分。

客户端使用稍作改造的开源libtorrent库实现了基于BT协议的P2P传输。同时我们增加了支持对数据源在hdfs上进行P2P下载的方式。下载模式也支持多种用户需求,如下载完成后继续后台做种、磁盘空间动态预分配、direct IO等。

Tracker采用thrift+redis实现了一套高性能的server。单tracker实例可以达到1.8w QPS。Tracker根据协议特点而进行的分布式架构,使得其一方面可以迅速扩容,一方面可以减少跨机房/跨地域传输流量,给全公司提供统一的高性能服务。

刘明
百度

2012年山东大学硕士研究生毕业,现在担任百度运维部高级软件研发工程师。自2013年开始做内网p2p数据分发项目gingko,参与了从设计到实现的所有细节。