TDSQL升级版引擎架构和关键技术介绍
TDSQL升级版引擎架构
TDSQL升级版旨在提供像使用单机数据库一样使用分布式数据库的体验,其架构包含计算模块、存储模块和管控模块。
计算模块 SQLEngine
- 内核:完全兼容MySQL 8.0。
- 架构:多主架构,每个节点均可读写,无状态化设计,支持灵活扩缩容。
- 交互:从TDMC获取事务时间戳和路由信息,与TDStore进行事务交互。
存储模块 TDStore
- 架构:基于LSM-Tree和Multi-Raft的分布式KV存储引擎。
- 数据:Region基于Raft同步的多副本存储管理单元,数据按Key范围分布。
- 交互:接收SQLEngine的事务请求,充当分布式事务协调者。
管控模块 TDMetaCluster
- 架构:基于Raft的一主两备元数据管理集群。
- 数据:分配全局唯一递增事务ID,管理TDStore和SQLEngine元数据,管理Region数据路由信息,全局MDL锁管理。
- 管控:调度Region分裂、合并、迁移、切主,存储层扩缩容和负载均衡调度,异常事件告警。
关键技术介绍
分布式事务
- 协调者下沉:TDMC不记录日志,降低延迟。
- 故障恢复:采用参与者协商方法,收集所有参与者状态。
- 流程:TDMC提供事务时间戳,SQLEngine发起事务,TDStore进行两阶段提交。
无感知扩缩容
- Region调度:分裂、迁移、切主,通过Raft增减副本实现。
- 性能:数据拷贝传输,对事务透明,不阻塞事务。
- 负载均衡:均衡Region Leader分布,调整热点,均衡负载。
- 事务并发:热点调度和自动伸缩的前提是业务层无感知中断。
数据存储与迁移
- 架构:基于LSM-Tree,包含memtable、log、SST等组件。
- 流程:数据写入memtable,批量写入log,flush到SST,通过compaction合并、清理过期数据。
- 迁移:通过InstallSnapshot RPC下载和合并数据,实现region迁移。
总结与未来规划
TDSQL升级版提供MySQL完全兼容、无限扩展的计算和存储容量、无需指定shared key、高可靠、高可用,以及业务无感知的扩缩容,实现无限扩展性的单机数据库。