刷新全球游戏记录!腾讯云TcaplusDB数据库为《王者荣耀》1亿DAU保驾护航

2020 年 11 月 05 日

刷新全球游戏记录!腾讯云TcaplusDB数据库为《王者荣耀》1亿DAU保驾护航

11 月 1 日晚,《王者荣耀》官方宣布 2020 年日活跃用户数日均 1 亿,成为国内乃至全球首个日均 DAU 过亿的手游。与此同时,腾讯云 TcaplusDB 作为《王者荣耀》的数据库服务产品,成为全球首款支持过亿 DAU 游戏的数据库。

 


任何一款游戏的成功都不是偶然的,《王者荣耀》在保证游戏的挑战性、趣味性和多样性上做了很多功夫,仅系统就有几十个,包括战斗系统、玩家系统、铭文等。目前,《王者荣耀》的后台数据量已高达数百 TB,1 个区有 100 多个表且还在不断增加。这就致使了《王者荣耀》对数据库性能、稳定性、扩缩容、成本、游戏特有场景等方面有着更高要求。

 

对于《王者荣耀》而言,数据库是灵魂,承载着所有系统的信息落地,而专为游戏而生的腾讯云自研分布式 NoSQL 数据库 TcaplusDB,5 年来一直为《王者荣耀》的核心数据提供数据库服务。可以说,每一次的玩家登陆、每一局的对战、每一轮的录像回放都是对 TcaplusDB 的考验,每一次的团战都需要在海量的数据中进行增删改查。

 

“我们对比过很多数据库,在目前王者的数据容量和并发条件下,TcaplusDB 的读写时延是最稳定的!”《王者荣耀》相关技术负责人评价道。在他看来,TcaplusDB 高并发、低时延、低成本的性能优势为《王者荣耀》的数据运行和游戏业务场景提供了强劲支撑。

 

具体来说,TcaplusDB 拥有接近无限的水平扩展能力。基于 shard 分片的分布式技术,其单表容量可以支持 2.56 PB,吞吐能力随硬件扩充呈线性增长。同时,通过快慢请求分离与记录级锁,它可以解决复杂请求和简单请求的隔离,减少锁定范围提升读写效率。此外,基于创新算法,TcaplusDB 可以在一个进程中实现冷热数据的交换,解决跨进程数据交换的一致性、可用性与管理复杂等问题。

 

从游戏业务场景的角度出发,TcaplusDB 支持表级和记录级的数据生命周期管理,能够有效实现活动数据的过期清理。此外,基于冷备数据和二进制日志数据,TcaplusDB 还可以针对全服级、表级、记录级或按照指定条件进行回档,且时间精确到毫秒。

 

另一方面,面对海量增长的用户数,系统稳定和扩容一直是《王者荣耀》的关注焦点。

 

不管是每年的“开黑节”、春节期间的 DAU 上涨还是 5 周年庆的计划性扩容,TcaplusDB 都能在应对频繁扩容需求的同时确保着 5 个 9 的高可用性。

 

2020 年春节,TcaplusDB 陆续对各个大区 7 个表进行了 15 次扩容,扩容集群服务只增加了 20 组。最后一次扩容,在 1 小时内完成了突增 100 万-200 万 PCU 扩容,且在扩容过程中玩家无感知。

 

这是个几乎不可能完成的任务,但 TcaplusDB 交上了满分答卷。它是怎么做到的?

 

首先是理解应用的自动负载均衡和过载保护。以过载保护为例,TcaplusDB 能站在“游戏服务器”的视角感知业务过载,通过处理时延、队列长度、成功率等指标综合评估数据库的负载能力,对高负载应用进行保护,防止雪崩发生。

 

同时,TcaplusDB 针对计划内扩容和计划外扩容,提出了不同的解决方案,根据实际情况随机应变,灵活处理,并通过对可用区故障的自动切换与修复,在技术上支持跨可用区和单设备的故障自动切换和修复,既保障了扩容的速度和效率,又做到对玩家的完全无感。

 

值得一提的是,这不是首次面对这样的挑战。早在 2017 年春节期间,TcaplusDB 就经历了连续七天的深夜扩容,在系统能力不足的情况下,通过开启读分流规避方案,成功度过高峰期。S 赛季期间,由于玩家想看的赛季场数超过最初设计的 10 场,TcaplusDB 是进行了大规模改表结构,紧急支持表结构修改对用户无感方案。

 

历经腾讯内部 8 年的游戏经验积累,TcaplusDB 数据库已广泛应用于《王者荣耀》、《刺激战场》、《穿越火线》、《火影忍者》等数百款流行游戏,并通过腾讯云向全球游戏业务提供服务。

 

未来,随着以《王者荣耀》为代表的手游市场迈入新台阶,腾讯云数据库也将持续投入资源以丰富游戏行业的技术产品生态,不断提升综合服务能力,助力手游市场高质量快速增长。


2020 年 11 月 05 日 19:14910

评论

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

史上第二全的java文件操作和数据读写

诸葛小猿

文件读写 inputstream OutputStream PrintWriter BufferedReader

MapReduce

莫莫大人

极客大学架构师训练营

架构师0期Week12作业

Nan Jiang

大数据架构之上

阿飞

大数据 架构

Week12 总结

张磊

第12周作业

刘卓

架构师训练营 第十二周 总结

CR

架构师训练营——第12周学习总结

jiangnanage

PageRank简述

朱月俊

week12作业一

极客大学架构师训练营

week12 小结

Geek_196d0f

Week 12 作业

鱼_XueTr

架构师训练营第十二章作业

子豪sirius

大数据应用业务

张磊

架构师训练营 第十二周 作业

CR

极客时间架构师训练营-第十二周-命题作业

sljoai

极客大学架构师训练营 #第十二周# #命题作业#

第12周学习总结

刘卓

架构师训练营——第12周作业

jiangnanage

SpringBoot 缓存之 @Cacheable 详细介绍

hepingfly

Java spring 缓存 springboot

架构师训练营 week12

devfan

架构师训练营-week12-学习总结

晓-Michelle

极客大学架构师训练营

week12 作业

Geek_196d0f

架构师0期Week12总结

Nan Jiang

MapReduce

李广富

架构师训练营第十二周作业

坂田吴奇隆

极客大学架构师训练营

极客时间架构师训练营-第十二周-总结

sljoai

极客大学架构师训练营 #第十二周#

人生需要正确选择

朱月俊

「架构师训练营」第 12 周作业 - 总结

森林

w-12

麻辣

极客大学架构师训练营

架构师训练营第十二周-总结

坂田吴奇隆

极客大学架构师训练营

架构师训练营 week12 - 学习总结

devfan

刷新全球游戏记录!腾讯云TcaplusDB数据库为《王者荣耀》1亿DAU保驾护航-InfoQ