TDSQL 是腾讯云旗下金融级分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、 HTAP 双引擎、Oracle 兼容、企业级安全、便捷易运维等特性,目前金融核心系统客户已超过 20 家,尤其 在银行传统核心系统领域,位居国内第一阵营 。客户涵盖多家国有大行,及平安银行、张家港银行、昆山农 商行等头部银行及广泛金融行业机构 。
TDSQL 架构介绍TDSQL 的全称为 Tencent Database SQL 。下图是 TDSQL 的最新技术架构,它描绘了一个计算/存储分离、 数据面 / 管控面分离的高可用的原生分布式架构的关系型数据库 。TDSQL 分为三层:绿色部分是计算层,称之为 SQLEngine ;紫色部分是管控层,简称为 MC,负责整个 集群的管控调度工作;蓝色部分是存储层,称为 TDStore。TDSQL 架构三个重要的特性:全分布式,无论在计算层还是管控层,每一层都是分布式的架构;计算与存 储分离;可实现动态可扩展功能特性 。
文章插图
TDSQL 的四个主要功能特点分别是:
- 高度兼容 MySQL。TDSQL 对单机迁移过来的业务,兼容度高达 100%,能够实现无感知迁移 。
- 高可扩展性 。在存储层和计算层,用户只需手动在管理界面上添加一个存储节点或计算节点,后续内部的 管控机制会自洽地完成整个流程 。
- 支持原生 Online DDL,可多写架构下以原生方式实现 Online DDL 。
- 全局读一致性 。TDMetaCluster 统一分配全局唯一递增事务时间戳,实现金融级场景下的数据强一致 。
文章插图
分布式架构主要分为计算层、存储层和管控层 。
首先是计算层 。TDSQL 计算层最大的特点是多主架构,每个节点都支持读写,完全相互独立;每个计算节 点为无状态,具备扩容优势,可实现 MySQL 的高度兼容,具备无状态化的弹性扩容的架构特性 。
文章插图
其次是存储层 。它是我们自研的 KV 存储引擎 。在存储层和计算层的交互中,存储层承担事务协调者的角色 。我们以一定方式将数据打散到每个存储节点上,每个数据分片称为 Region。存储层对所有数据的状态自身 无感知,只负责数据的读写,所有数据的调度都由它与 MC 的交互来进行 。
文章插图
最后是管控层 。它是一个分布式的集群,以 N 倍的方式去部署 。在整个集群中,它要同时承担管控层面和数 据层面的工作 。比如在数据层面,MC 负责一个全局、一个中心的严格递增,是唯一的分配者角色,且同时 负责管理所有的计算节点、存储节点的元数据、MDL 锁 。
文章插图
以下是数据库中常见的主功能流程:
分布式事务 。数据库的访问是天然的分布式事务 。整体流程为:从 MySQL 客户端发送请求,通过计算层对 存储层进行读写,读写过程中,存储层和计算层都会去和 MC 交互,获取时间戳,最终确定每个事务之间的 偏序关系,完成整个流程 。
文章插图
无感知扩缩容 。当存储空间不够时就需要扩容 。在扩容过程中,必然会涉及到数据的搬迁 。如下图例子所示,整个集群中只有一个存储节点,当需要扩容时,可以在界面上点击多购买一个存储节点 。此时存储节点上数 据的分裂搬迁、计算层对最终数据路由的感知、计算层感知路由的变化后完成的重试等过程可以完全自洽地 包含在整个数据库体系中,实现业务层无感知 。
文章插图
Online DDL 。TDSQL 的分布式体系架构采用多写架构 。为达到更好的并发性能,需要在多写的架构下,实 现 Online DDL 。相较同类产品,当业务尝试在运行过程中加一列、加一个索引时,需要借助外部的工具,及堵塞业务来完成 DDL 的操作 。为了更好的用户体验,降低对业务的影响,通过 TDSQL 可以把多写架构 下的 DDL 以原生方式去完成 。
TDSQL 在分布式场景下的挑战TDSQL 架构的三大功能特性:
推荐阅读
- mysql误删除恢复
- 几种主流的分布式定时任务,你知道哪些?
- 故障分析 | 数据库故障 MHA 未切换
- 数据库 SQL 约束之 NOT NULL
- 手把手带你撸一个最简单实时数据库
- windows系统中毒,sql server数据库文件恢复抢救和OA程序文件恢复
- 深入了解数据库原理及底层
- Oracle不同数据库之间同步处理方案
- 使用IDEA连接ClickHouse OLAP数据库
- TD 免费在线的数据库表设计工具