《王者荣耀》背后的数据秘密

本文讲述了腾讯云数据库TcaplusDB的研发历程,从为《夜店之王》提供服务,到支撑《王者荣耀》的亿级DAU,展示了一个数据库如何在应对高并发、大规模数据访问的挑战中逐渐成熟。TcaplusDB经历了从自研到成为腾讯云服务的过程,为游戏行业提供了高性能、低成本的解决方案,并逐渐为更多行业提供数据存储服务。
摘要由CSDN通过智能技术生成

从找不到需求险些被叫停,到支撑亿级DAU的数据库行业标杆,这款支撑了《王者荣耀》多个系统的腾讯云数据库TcaplusDB在风雨中走过了整整10年。辉映日月破风浪,十年一剑破九天。百万行代码就像淙淙流淌的数据溪流,终于在十年后汇成不可逾越的护城河。

出发

2010年前后,QQ空间很火,带动了基于SNS互动页游(WebSNS)的火爆,腾讯内部开始考虑怎么做页游。也开始建设页游基础技术体系,其中最重要的产出是研发自己的分布式数据库TcaplusDB。与MMOG游戏不同,通常WebSNS游戏是全区全服的,数据集中存储;而其游戏逻辑服务器是对等的,web客户端通过短连接与服务器进行通信,也就是说玩家游戏过程,后端交互的逻辑服务器随时会变动;这些特性导致在逻辑层不方便对用户数据做缓存。

此外,WebSNS游戏基于玩家之间社会关系的互动场景非常多,玩家的一个互动操作,需要读取和修改与此关联的其他多个玩家的数据;这意味着web游戏中数据读写访问频率高于同时在线数,其访问频率实际上是在线数的N倍;假如某个100万在线的web游戏,平均每个玩家有50个好友,如果同时有1%的玩家触发一个好友动作,则可能会触发50万次数据访问。也就是说,基于这样的场景,web游戏的数据库层需要支持比传统MMOG游戏大的多的访问频率,如果仍然采用传统的数据库管理系统(如MySQL),要支持这么大的访问频率,其代价非常大。

因此,在游戏逻辑层和传统数据库管理系统之间架设高速的缓存系统,对web游戏来说至关重要。

当时业界已经有比较多的提供高速数据访问的NoSQL产品,不可否认,这些NoSQL产品在一定场景下使用是很优秀的,但在部分场景或需求下存在不支持或不够出色的情况——比如全内存带来的成本问题或对异步数据读写支持不够等。

2011年起,腾讯内部开始着手研发一款自己的分布式游戏数据库系统——TcaplusDB。这是个很美好的愿景。但从零开始自己研发一款数据库又谈何容易?2009 年开始,大量新的NoSQL数据库涌现,在整个行业掀起了一场NoSQL 革命,如今赫赫有名的 Redis、MongoDB 皆诞生于那一年。研发TcaplusDB是高楼万丈平地起的事情,我们一边调研友商的产品,一边抓住游戏行业特定的场景和需求,做最小化的产品验证。经过不断的验证,第一个版本在2012年初终于出炉。

时机<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值