张青林:云原生数据库TDSQL-C在关键技术的多维突破

//

2021年11月4日,云原生开源生态专场,由腾讯云数据技术总监张青林分别从海量存储、弹性缩扩容、秒级快速备份与回档和支持serverless4个维度分享腾讯云原生数据库TDSQL-C的显著特性,以及在不同业务应用场景中的内核技术优化实践。

(以下是通过张青林现场演讲全文整理)

传统数据库架构瓶颈

在自研云原生数据库TDSQL—C之前,我们也做多年其他的云数据库产品,越到后面越发现传统数据架构存在着几方面问题:一、数据本地存储,随着业务的增长,单机存储量可能会大于单机磁盘容量限制,需要对业务进行迁移,对业务造成不便;二、传统CDB架构的一主多备,备份迁移回档数据时会引发可用性和水平扩容等问题,这些突出的矛盾在传统的架构里难以解除,或解决的效果并不理想。

因此,我们开始考虑需要引入新的存储架构,而这种架构需要满足几个特点:1)存储容量可以自动扩充,且容量足够大,足以支撑业务的发展。2)不应有主备延迟,能够解决数据的可靠性和可用性问题。3)随着业务的增长,能够进行水平扩容,扩缩容的整体响应要好。基于以上几点设想,我们设计了云原生数据库 TDSQL-C。

TDSQL-C四大显著特征

TDSQL-C如图上所示,分为计算和存储层,一主多备。计算主要负责原子性、一致性、隔离级别的实现,即ACID里ACI的实现;存储主要负责数据持久化,主备之间通过 redo log 进行内存同步。通过把计算和存储解耦以及引入新的数据同步协议,实现了 TDSQL-C。

TDSQL-C 有以下4大特性:

第一,支持PB级存储。传统数据库架构,购买规格和机器所用空间,一般单机磁盘容量是几T到几十T之间;TDSQL-C存储可直接连到网络存储,支持PB级存储。

第二,秒级扩缩容能力。通过计算与存储解耦,存储空间可以自动扩缩容,弹性能力显著;

第三,秒级快照备份回档能力。金融和游戏行业相关应用场景对备份的时效性和速度有较高的要求,通过存储层秒级快照实现数据和redo日志的持续备份,提供任意时间点数据恢复能力(Point-in-time recovery,PITR) 。

第四,支持serverless形态,按需计费。传统数据库计费取决于本身购买的规格,以及使用所需要的时间;TDSQL-C 支持 serverless形态,支持按实际计算和存储资源使用量收取费用,不用不付费,整个服务监控力度达到秒级级别,将云原生技术普惠用户。

TDSQL-C产品关键优化

为了实现TDSQL—C以上显著特性,我们针对数据库内核做了大量的优化。

  • 极速备份和回档。目前传统云数据库备份使用方式为物理备份或者逻辑备份,耗时较久。TDSQL-C采取并行备份,恢复时把快照拿出来,每个cell 独立 apply redo log,对比友商,我们备份时间仅为友商的1/10。
  • 创建索引。TDSQL-C在创建索引方面做了三个阶段优化:1)并化扫描,并行能力减少IO所带来的影响;2)并行 merge sort 功能,减少排序时间;3)批量构建b+树,先构建多个小b+树,然后再对小的b+树合成一个单独的b+树,避免二次扫描。
  • 极速启停。过往buffer pool大实例重启,初始化耗时长,用户体验差;基于对启动时间的进行时耗分析,BP和事物系统初始化,我们对它进行了并行化处理,经过优化,启动&关闭时间对比于其他云产品启动和关闭时间降低了一个数量级。
  • 极致伸缩。卸载空间扩展,日志驱动按需扩展,计算节点可根据业务需要快速升降配,秒级完成扩缩容,降低用户使用成本;
  • DDL的优化。在用户的实践中,修改列是一项频繁且不友好的操作,此操作会阻塞用户的读写请求,对业务影响非常大,TDSQL-C业界首创支持了instant modify column功能,达到了秒级修改列的效果。
  • 二级缓存。针对普遍存在的IO bound场景,在计算层引入独立于bufer  pool的二级缓存,利用非易失存储等新硬件的能力对BP进行补充,缓存热数据,解决网络存储带来的 IO问题;

最终,TDSQL-C的这些特性实现,离不开团队对产品的用心,从可靠性、可用性以及深度结合业务本身的特性所做的优化

未来产品演进

数据库技术将随着时间的推移不断演进和革新,未来TDSQL-C将重点往以下两方面不断发力:一是database极致性能,log  store提升日志更快的响应速度和带来更大的整体吞吐量,提供极致的写性能;二是跨Region读,提供可用性更高的、跨Region的只读服务,并提供金融级的可靠性和跨区域灾备等。

招贤纳士:作为国内数据库行业先行者,腾讯数据库研发中心为公司内外数十万客户提供专业的数据库服务,涵盖互联网 、金融 、音视频、 智慧城市等领域,规模和增长在全球云数据库市场名列前茅。未来,腾讯还会在数据库赛道上持续加码,面向社会及高校引进更多技术人才,结合腾讯在QQ、微信等服务十几亿C端用户的能力、经验和资源,为 B端客户持续提供好用、易用、安全的数据库产品。

欢迎有志向从事数据库系统研发的同学加入腾讯TEG云架平数据库研发中心队,可通过邮箱(tencentarchitect@126.com)联系。