1 透明分库分表和在线扩缩容能力。
这是TSpider首先需要支持的功能,也是解决以上痛点的关键。得益于此,开发者可以 仅专注于业务逻辑的开发及运营,无需编写数据分片逻辑,在海量用户并发情况下,也 无须关心DB存储层的负载压力,TSpider的管理系统会根据负载压力从而进行在线扩缩 容调度。
举个例子来说,某手游上线前,其iOS-QQ渠道的用户数据,我们上架的TSpider集群一般仅包含2组PCIe-SSD作为后端存储机器,随着该游戏快速增长,我们可以在该游戏不停机的情况下,将TSpider集群后端存储机器增加到4组或8组PCIe-SSD,而随着游戏的衰退,我们又可以随时将集群机器减少到2组,这些扩与缩的操作,均不需要研发或运 维的参与,并对玩家的游戏体验无影响。
2 兼容MySQL协议,支持MySQL 99%以上用法。
腾讯游戏对接的开发商众多,在接入腾讯平台前很多已经有现成的开发框架和代码。因 此,在分布式技术方案选型前,协议兼容性是非常关键的一个指标。因为让开发商大量修改代码是一件比较困难的事情,也不符合手游生命周期中快速上线的特点。事实上, 接入TSpider的游戏业务确实使用了比较多“奇怪”的用法,包括表连接、子查询、多表更新等,就是基本上将TSpider当成了一个普通的单机MySQL来使用了。
在兼容协议的同时,我们也做了大量的性能优化,如执行智能下推及并行化查询,在某 些复杂查询场景下没有命中shard-key,则效率比较低,需要遍历所有的后端存储节点,在打开并行化功能情况下,经过游戏的实践验证,在此场景可提升6-8倍的查询效率。
3 高可用
TSpider后端存储节点采用一主一备架构,我们会监控Slave跟进情况及数据一致性。当Master发生机器故障时,可在分钟级完成故障切换,切换过程对应用透明,并且应用无 需重连。
4 老业务数据支持在线接入
除了新业务,老业务也可以享受TSpider带来的收益,MySQL M-S架构迁移到TSpider环境中支持数据在线迁移,但需要短暂的停机时间进行业务访问的切换。

以上GCS-TRedis、GCS-TSpider的实现原理和技术细节将在DTCC 2016大会的<专场2: NoSQL技术实践>和<专场23:数据库技术前瞻>两个专场中,由腾讯互娱高级DBA康中良和 陈福荣两位同学给大家一一进行阐述,敬请关注。![]()