“Jeff Dean和腾讯不为人知的故事。”
作者丨覃倩雯
编辑丨刘伟
前言:
雷峰网近期与腾讯、阿里、百度一众原高层交流,挖掘了最一手的Google前首席科学家Jeff Dean与国内互联网大厂之间的技术探讨往事,以及他对BAT重大技术决策的启迪案例。本文是这一系列的第一篇,后续还将推出“Jeff Dean与阿里、百度篇”。
据多位腾讯元老向雷峰网回忆,2006年,在Google的一场开发者交流会上,腾讯几位技术骨干结识了Jeff Dean,他们私下进行了一场交流。
回到深圳飞亚达大厦后,快被QQ空间存储量压垮的这一众人,迅速做了个重要决定:腾讯要借鉴Jeff Dean的思路,做自己的分布式文件存储系统。
这个系统后来被叫作TFS。由卢山发起,姚星负责。
那时候,Jeff Dean所在的Google,已经走出了海量数据存储、海量访问、海量计算的三大难题。
彼时,Google的Gmail、地图、搜索以及刚收入囊中的YouTube,加起来共超5亿条记录的存储数据,约5000PB的存储容量,比腾讯高出很多个量级。
相比Google,腾讯存储数据容量虽然还没有到PB级别单位,但最大的瓶颈就卡在了存储上。
2005年上线的QQ空间增长得太快。用户每天上传照片、头像和文件,通过不断采购NAS/DAS存储阵列、增加机房服务器并伴随大量人工数据迁移的扩容速度,开始追不上用户生产内容的速度。
最紧张的时候,QQ空间的存储系统只能支撑所有用户每天总共上传约1000万张图片。
为了给后台“减负”,腾讯甚至做了一层产品限制:普通用户不能无限上传,只有付费的黄钻用户才拥有这个权限。
更麻烦的是,那时的腾讯还没有一套统一的存储平台。
不同业务自己买设备、自己搭系统。业务小时,这套办法还能应付,但是碰到QQ空间这样突然爆发的产品,各自为战的技术体系很快被顶到了极限。
与Jeff Dean的对话,一下击中了腾讯。
回到腾讯后,时任腾讯CTO的张志东,以及汤道生、卢山等技术主管开始琢磨,Google这套东西能不能搬到腾讯来。
据内部人士回忆,第一次翻到Jeff Dean发表的三篇经典论文时,他们赶紧找到了汤道生,让汤道生去看,因为汤道生英语好,能看得更仔细、更完整。那时,汤道生才刚入职腾讯的系统架构部门。
Jeff Dean的论文三件套分别是:GFS、MapReduce、Bigtable。正是这总共不到100页纸的论文,彻底重塑整个数据行业的技术版图,更深刻影响了腾讯整个十年的技术发展。
文章里,Jeff Dean介绍了Google处理海量系统的思路:把数据备份成三份,然后把逻辑和设备硬盘分离。
过去互联网公司面对海量数据,更习惯沿用电信和传统IT行业的做法:买更好的机器、更昂贵的存储阵列,再用复杂的硬件机制保证可靠性。
Google换了一个思路。它把大文件切成一个个固定大小的数据块,同一份数据保存多个副本,分散到不同的普通服务器上。一台机器坏了,还有另外的副本。
更重要的是,文件在逻辑上的位置,不再和某块硬盘、某台机器死死绑在一起。
过去如果数据直接对应具体IP和设备,换一块盘、换一台机器,后面的访问关系也可能跟着调整。
Google把这两层拆开了。
用户和上层业务看到的是一个稳定的逻辑地址,至于文件究竟躺在哪台机器、哪块硬盘上,由后台的映射和调度系统处理。也就是说,硬盘可以换,机器可以坏,服务器可以不断增加,但上面的业务不需要跟着一起搬家。
这给了腾讯很大的启发。
内部经过一轮讨论后,腾讯决定组建一支专门的存储团队,沿着Google的方向,做一套自己的分布式存储系统。
有了GFS、MapReduce、Bigtable三篇论文借鉴,团队成立的第二年,TFS存储系统就上线应用,并全面接管QQ空间的相册业务。
不过,腾讯并没有简单照着Google做。
Google面对的是搜索,处理大量网页、索引和日志;QQ空间面对的是数以亿计的用户照片,一张照片可能很小,但数量极多;文件更碎,索引更密,访问也更加随机。
所以Google GFS采用64MB的数据块,腾讯把TFS的数据块做到了2GB,并围绕大量小文件的存储方式做了大量调整。
这是TFS后来能够真正跑起来的关键。
很长一段时间里,TFS都称得上腾讯内部体量最大的技术后台:几十万台服务器被组织到同一个分布式体系中,原本分散在不同业务里的存储需求,也开始逐渐被收拢成一套公共能力。
后来,随着业务场景越来越复杂,腾讯又先后推出了适合各种不同图片存储场景的存储系统。
针对图片删除和空间回收,有了CTFS;面对高频访问场景,又出现HTFS;此后还有支持EC编码的BTFS,以及基于HDD的键值对存储平台TDB。
2009年,QQ空间成为腾讯仅次于网络游戏的第二大收入贡献部门。同一年,QQ农场爆发,“全民偷菜”让腾讯又碰到了一个完全不同的问题:数据本身不算特别大,但所有人都在同时访问。
在原有的技术上,腾讯存储技术团队又为QQ农场研发全内存分布式系统,扛住每秒数万次的并发访问。
而腾讯也在一次次爆款产品的压力下,把当年从Google得到的启发,一点点变成了自己的技术体系。后来,这套能力继续进入QQ邮箱、微云、微信等产品,并逐渐沉淀为腾讯统一存储平台乃至云计算能力的一部分。
值得一提的是,Jeff Dean这套思路后来也迅速走出Google,成为整个互联网基础设施演进的重要起点。
此后十多年里,大数据和云计算所依赖的许多核心思想,都能在GFS、MapReduce和Bigtable中找到源头。后来广泛流行的Hadoop,也是在这些论文公开之后,由外部开发者沿着Google展示的思路重新实现出来的。
本文作者长期关注大厂AI、电商行业,欢迎添加微信qqw_501一起交流。
热门跟贴