硬核干货 | 突破底层基础架构瓶颈,揭秘TDSQL存储核心技术
TDSQL是腾讯面向企业级应用场景的分布式数据库产品,目前已在众多金融、政务、电商、社交等客户应用案例中奠定金融级高可用、强一致、高性能的产品特性和口碑,帮助20余家金融机构完成核心替换,有力推动了国产数据库的技术创新与发展。
日前,TDSQL新敏态引擎正式发布,高度适配金融敏态业务。该引擎可完美解决对于敏态业务发展过程中业务形态、业务量的不可预知性,实现PB级存储的Online DDL,可以大幅提升表结构变更过程中的数据库吞吐量,有效应对业务的变化;最关键的是,腾讯独有的数据形态自动感知特性,可以使数据能够根据业务负载情况自动迁移,打散热点,降低分布式事务比例,获得极致的扩展性和性能。
本期将由腾讯云数据库专家工程师朱翀深度解读TDSQL新敏态引擎存储核心技术。以下是分享实录:
TDSQL新敏态存储引擎
TDSQL新敏态存储引擎
技术挑战
事务原子性。一个事务涉及到的数据可能分布在多个存储节点上,必须保证该事务涉及到的所有修改全部成功或全部失败。 事务并发控制。并发事务之间不能出现脏读(事务A读到了事务B未提交的数据)、脏写(事务A和事务B同时基于某个相同的数据版本写入不同的值,一个覆盖另一个)。 数据调度时不杀事务。新敏态存储引擎的重要设计目标之一,是让业务在敏态变化中无感知,因此要确保在数据搬迁时,不影响事务的正常进行。
事务原子性
分布式事务并发控制
数据存储是基于时间戳的数据多版本,以下图中左下方的表为例,数据有多个版本,每个版本都会有一个时间戳。比如数据Key:A有三个版本,它的时间戳分别为1、3、5,对应的值也不同。 TDMetaCluster模块提供全局逻辑时间戳服务,保证逻辑时间戳在全局单调递增。

事务开始时会从时间戳服务模块获取一个时间戳,我们称之为start_ts。事务读取指定Key的value时,读取的是从数据存储中第一个小于等于start_ts的key value(上图例子中是从下往上读,因为图例中的新数据在下面)。 事务未提交前的写入都在内存中(我们称之为事务私有空间),只有事务提交时才写入数据存储里对其他事务可见。 事务提交前需要再获取一个时间戳,我们称之为commit_ts。事务提交时写入数据存储中的数据项需要包含这个时间戳。
数据调度不杀事务
结语
﹀
﹀
﹀

金融级数据库新坐标:腾讯云TDSQL发布全自研新敏态引擎

腾讯云李纲:TDSQL已助力20余家金融机构完成核心替换
评论
