QQ空间|腾讯存储技术背后的十五年往事

作者:王德清
出品:雷锋网产业组
前言:数据“横行”的今天,用来存储数据的系统至关重要。而一个大型存储系统,从酝酿到诞生再到成熟,并不是一件简单的事情。
腾讯作为国内领先的社交巨头公司,不仅在2006年自研了TFS等存储系统支撑了其内部90%+的数据存储业务,在面向To B业务,腾讯在2018年又自主研发了面向云场景的「YottaStore」存储系统,存储系统要换代,数据迁移是不可避免的,对腾讯这般体量的公司来说,需要莫大的勇气。
契机之下,雷锋网与腾讯存储团队6位老兵展开了一次深度对话,还原腾讯存储系统变革背后的那些故事。
这一切要从2006年开始说起。
彼时,互联网行业正处在社交化浪潮中,腾讯还并非是现如今这般规模的社交巨头,虽然手握QQ这样的爆款产品,但在SNS刚刚兴起的时代,谁都无法保证可以笑到最后。
也就是这一年,QQ空间作为一款定位于“展示自我和与他人互动的平台”,被腾讯推了出来,一开始数据表现出乎意料的好,用户快速增长,活跃度很高,甚至收入也超出预期,但竞争也随之开始了。
就在QQ空间发布没过多久,靠炒房赚得第一桶金的庞东升决定回到互联网继续冒险,他以100万元人民币收购了张剑福创办的个人数据库公司10770。在稍稍弄明白SNS是怎么一回事后,庞升东决定将10770改造成互动社交型的51.com。
在庞升东的心中,51的假想敌只有一个,就是腾讯的QQ空间。
只要腾讯出什么新花样,51在一个月内一定跟上。更可怕的是,在2006年的大多数月份,51的用户增长数一直在QQ空间之上,这让腾讯非常紧张。
“QQ空间”保卫战势不容缓,而这场保卫战第一战,拼的是“技术”。
上线即“王者”2006年,刚接手QQ空间的负责人听到的都是投诉的声音:「QQ空间无法打开」;「照片下载速度很慢」……而经过测试,打开一个空间,需要5秒钟。
而要解决这些问题,首先要解决的就是存储这个底层技术。
“2006年,我博士毕业来到腾讯的时候,腾讯还没有统一的存储产品或者技术平台,基本上都是各个业务自己去做一个存储的系统。”腾讯云副总裁、云架构平台部总经理谢明对雷锋网说到。
QQ空间|腾讯存储技术背后的十五年往事
文章插图
QQ空间登录页
据腾讯2006年披露的数据显示,QQ空间上线3个季度,注册用户数就突破了5000万,月活跃用户数约2300万,日访问人数也已经超过1300万。
那时候,QQ空间的存储系统仅能支撑所有用户每天共上传1000万张图片,显然,面对用户持续不断的增长,依靠此前不断购买存储服务器的方式来进行扩容,其速度是无法跟上用户内容的增长速度。
这些持续增长的UGC数据无疑将会给腾讯存储带来巨大挑战,而如果无法突破这个挑战,QQ空间第一战的结果也就难说了。
而这个挑战被一支刚刚成立的团队接下了。
一支被腾讯主要创办人之一、前CTO张志东称之为“黄埔军校”的团队。这支团队成立的第一个任务就是解决QQ空间发展所带来的存储问题,其第一任主帅就是现任腾讯公司高级执行副总裁卢山。
而摆在这个刚刚成立团队面前的难题,并不亚于愚公家门前王屋、太行两座大山。
技术人员都是有梦想的,他们希望用技术来解决一切,亦或是他们可以参考的只有2003-2004年Google发布的关于三大件(BigTable、GFS、MapReduce)几篇比较知名的论文。
“GFS算是最早期的企业级存储转向互联网大规模廉价分布式存储比较早期实践。那时候我们决定去做一个存储系统,我们当时取名叫TFS。”谢明回忆道。
借鉴Google的几篇论文,在团队成立的第二年,TFS存储系统就上线应用,并全面接管QQ空间的相册业务。
再回到产品册遇到用户投诉,空间团队要求技术人员制作一张全国地图,凡是打开速度高于5秒的被绘成红色,3秒到5秒之间为黄色,低于3秒的被绘成绿色,地图制作出来后,挂在墙上,大家看到的是“祖国江山一片红”,其中,尤以西北、西南和东北地区的颜色最深。
只有一个基础的TFS存储系统显然是不够的。
“从技术角度来说,图片都是百K左右的小数据,相比大尺寸的数据来说,这种存储因为索引密集度更高,带来的技术挑战要大很多,一是要解决索引和数据尺寸协调的空间问题,二是要解决大规模下的成本问题。”
于是存储部门根据业务场景的演变,先后推出了适合各种不同图片存储场景的存储系统,如支持实时回收的CTFS系统、支持高频快速访问的HTFS系统、支持EC编码的BTFS系统、基于HDD的键值对TDB存储平台等。