关于数据库:墨天轮访谈-腾讯张铭带你揭秘王者荣耀背后的游戏数据库-TcaplusDB

27次阅读

共计 3597 个字符,预计需要花费 9 分钟才能阅读完成。

分享嘉宾 张铭
腾讯数据库专家工程师,TcaplusDB 产品负责人
整顿 墨天轮社区

导读
大家好,我是腾讯 TcaplusDB 的产品负责人张铭,TcaplusDB 是专为游戏设计的分布式 NoSQL 数据存储服务,目前广泛应用于王者光荣、QQ 飞车、火影忍者等数百款风行游戏。明天我的分享将分为四个方面:TcaplusDB 整体介绍 TcaplusDB 高性能与无损TcaplusDB 在游戏中的特色能力 以及TcaplusDB 的交付与服务

TcaplusDB 整体介绍

游戏数据库(TencentDB for TcaplusDB,TcaplusDB)是专为游戏设计的分布式 NoSQL 数据存储服务,历经十年打磨并齐全自研。

Tcaplus 在腾讯游戏中有十分宽泛的利用,比方大家所熟知的像王者光荣,战争精英等等。当然除了游戏行业之外,在税务、区块链等政务类的场景也有一些优良案例的落地。

TcaplusDB 数据库可能满足在游戏的业务中 OLTP 全场景的数据存储要求

如果您作为一个游戏或者互联网业务的开发者,不论是从接入层还是外围的模块,都能够将 TcaplusDB 作为一款主数据库应用。不论是在游戏中进行战斗,账号匹配结算、游戏零碎,经营零碎等场景利用,Tcaplus 都可能满足对应的需要。


图 1 TcaplusDB 满足 OLTP 全场景的数据存储要求

1、TcaplusDB 的典型表构造及利用场景

TcaplusDB 的构造整体上分为三个层级,第一个层级为集群 ,一般来讲是 APP 名或者游戏名; 第二个层级是表格组 ,个别实用于分区,用于辨别各种各样的区和组; 第三个层级是业务表格,比如说游戏的背包表,用户表等等。

同时咱们是一个多 key 多 Value 的数据库,反对若干个主键字段和若干个一般的 Value 字段。不仅如此,咱们还做了一些加强,即在 Value 的根底上进行了扩大。

比方一个玩家有很多的背包,每个背包里有若干个道具,这是一个人造的嵌套构造,再用用户的表加若干嵌套字段来实现多层级嵌套的形式。这样咱们便能极大地管制好读写放大的一个问题,使得咱们经营效率可能最高最大化。


图 2 TcaplusDB 的典型表构造

  • 反对 protobuf 对数据库表定义与拜访

在数据库的定表与拜访下面,能够应用 Protobuf(Protocol Buffers,PB)表。Protocol Buffers 是 Google 开源的中立、与平台无关的、可扩大的数据描述语言,用于对结构化数据进行序列化,但更小、更快、更简略。


图 3 Protobuf 进行定义与拜访

  • 反对 SQL 拜访

为了兼容行业内大家的应用习惯,咱们在原有这个 PB 的根底之上,推出了 MySQL 的兼容,也就是说您能够通过下载 MySQL 自身的驱动程序,通过客户端来拜访数据库。

比方您能够用 select 或者 delete 的语句,通过 sql driver 来连贯,这里对多语言的反对做得十分好,基本上多语言都可能连贯数据库。


图 4 反对 SQL 拜访

  • 像 SQL 一样灵便定义索引

本地索引是在键值数据库中,用到的最多的查问形式是点查,您提供若干个主键字段或者是局部的主键字段,就能够去查问到单条或多条的记录这样一种形式,这个效率十分的高。

那第二种形式索引,可能他的能力性能和能力会十分强,称之为分布式索引或者叫做二级索引。它可能基于这个主键字段之外,指定任意的字段进行含糊匹配的查找,建设相干的索引,包含像条件查问,范畴查问,含糊查问,聚合查问等等,都能够用到咱们的分布式索引,比方查问好友的昵称等等。

2、TcaplusDB 的整体架构

Tcaplus 整体上是一个以主备模式为主的数据库,分成两个数据的流向,第一个是数据流,即下图中的黄色线。第二条灰色线走的控制流,比方相似于扩容,缩容,建表删表等间接操作。


图 5 TcaplusDB 整体架构

TcaplusDB:高性能与无损

1、无需分库分表,治理粒度细化到表

TcaplusDB 是一款齐全分布式的数据库,分布式的能力十分强。同时索引不同于大家常见的顺序索引等。咱们的外围是一款哈希的索引。

基于这种哈希索引下,索引 自身底层技术架构决定了它在面对海量的读写的时候,效率会十分十分高。同时,咱们把这种绝对简单的须要顺序索引所执行的一些操作,放到了咱们的分布式索引这一块儿然而在次要的点查这块儿是基于哈希索引去做的。

同时咱们的治理可能细化到表,也就是扩容和缩容,包含故障解决的一些级别,都是代表级的,这样的力度可能给运维老本带来劣势。目前单表最多可能反对 2.56PB,将来也会扩充它的容量,同时一个存储金仓能够治理多个 shard,一个表能够散布在多个存储过程中。


图 6 TcaplusDB 治理粒度细化到表

2、老本仅为关系型 DB 的 30%

基于内存加这个最终的 SSD 落地的构造,包含后面提到这种哈希引擎,能够让咱们的整个在这种高性能读写的方面,也就是点查这种典型的场景之下,做到老本仅为关系型数据库的 30%。


图 7 TcaplusDB 的存储引擎构造

3、海量读写与稳固延时

同时 TcaplusDB 具备海量读写与稳固延时的性能。1 小时扩 100W QPS,应答疾速变动的经营需要,同时反对读写拆散,秒杀、红包、寰球同服、实时对战等超高性能场景。

TcaplusDB 在游戏中的特色能力

1、业务不停服

在 APP 或者游戏中,可能面临一个很大的问题,首先数据的表构造可能会降级,其次随着数据库自身的版本演进,数据库本身也会有变更,比方 bug 修复或者故障治理。

那在这样两种外围的场景下,不论您是做哪种变更,咱们都能对您的这个业务实现无感召,让你的业务不须要停服,这是目前市面上很多数据库不具备的能力。


图 8 TcaplusDB 实现业务不停服

2、海量并发下的大数据存储场景

十分多的用户在做选型时,他们的场景下单条记录十分大,须要在现网做频繁的变更,并且变更的量也十分大,因而没有方法应用相似的对象存储,而 TcaplusDB 能够反对海量并发下的大数据存储,
比方在游戏中,捏脸的数据十分细并且做了很多的细腻展出,这样会造成它的单条记录数据十分大,这时咱们能够将它这样一套记录存储下来,再提供对外提供一个服务。


图 9 TcaplusDB 在海量大并发场景下实现大数据存储

3、排行榜场景中的外围能力与劣势

TcaplusDB 具备记录玩家分数并实时更新与查问的外围能力,同时在差异化劣势上,TcaplusDB 体现在解决数据保护一致性问题,并对多个字段设定排序规定,解决 Redis 用户须要自行解决雷同分数的计划。


图 10 TcaplusDB 在排行榜场景的外围能力与劣势

TcaplusDB 的交付与服务

1、一套 DB,寰球发行

TcaplusDB 在整个的部署发行这里,可能为客户提供多种不同模式。

  • TcaplusDB 云服务
    包含咱们提供以云服务的模式,在腾讯云上有咱们的这个云服务
  • TcaplusDB 商业版
    提供私有化部署的商业版。
  • TcaplusDB 社区版:
    同时社区版目前也正在做,齐全在您的这个 IDC 和 CL 的机房中去部署咱们这一款数据库的产品。


图 11 TcaplusDB 的不同发行版

为了不便这个开发者开发的话,咱们也提供这个单机的版本,不论您是单机的 Windows Linux,你可能须要一个四核 8G 左右的一个机器,就能够把咱们的这个这个数据库从单机版部署起来,这样您能够在本地的这个云,或者是本地的这个 IDC 环境进行相应的一个开发调试的动作。

2、云模式下,灵便计费计划

在计费形式上分为两种,一种是规范集群,按量付费、高性价比;一种是按资源付费付费,稳固高性能。


图 12 TcaplusDB 的不同计费形式

3、经营 62 个可用区,助力游戏全球化部署

依靠于腾讯自身在寰球的一个经营发行,咱们反对到寰球 62 个可能区,可能助力到大家的在全球化的发行和经营方面的一些需要。整体来说,咱们这款数据库,它是一款键值数据库,咱们在整个在游戏相干的畛域上也做了十分多的深耕和细化,包含在高性能和低成本,再到游戏产品里都有体现。

最初大家如果想进一步的交换或者理解的话,能够扫下方图中的二维码,增加工作人员的微信,心愿大家提供进一步的服务。


图 13 TcaplusDB 更懂游戏的数据库

更多精彩内容,欢送大家观看现场视频回放与会议材料
视频回放:https://www.modb.pro/video/6182
会议材料:https://www.modb.pro/doc/58646


  • 查看原文:https://www.modb.pro/db/388139
  • 查看【国产数据库沙龙】键值数据库专场文章、视频回放资源:https://www.modb.pro/topic/379708

理解更多能够进入👉墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号:墨天轮、墨天轮平台、墨天轮成长营、数据库国产化、数据库资讯

正文完
 0