金融云分布式数据库TDSQL技术架构
腾讯会议核心数据库TDSQL,如何做到快速无损在线扩容?

腾讯会议核⼼数据库TDSQL,如何做到快速⽆损在线扩容?引⾔⾃去年12⽉底发布后,腾讯会议40天更新14个版本,8天紧急扩容超过10万台云主机,投⼊的计算资源超100万核。
疫情复⼯期间,每周都有数万家企业和政府相关机构使⽤腾讯会议复⼯复产,通过腾讯会议开拓了云签约、云招标、云⾯试、云培训等云上协同场景。
腾讯会议这款云视频会议产品,⽇活跃账户数已超1000万,成为当前中国最多⼈使⽤的视频会议专⽤应⽤。
⽬前,腾讯会议国际版也已经在超过100个国家和地区上线,助⼒全球战疫。
作为腾讯会议核⼼数据库,近期腾讯分布式数据库 TDSQL 持续⽀撑腾讯会议应对快速增长的存储容量和性能需求,为⽤户提供⾼速流畅、稳定可靠的服务,在平稳应对流量突增,实现让⽤户⽆感知的情况下进⾏快速⽆损在线扩容的场景⽅⾯提供了最佳实践案例。
⼀、不停机⽆损线性⽔平扩容⾯对流量突增场景,保障系统⾼可⽤的第⼀要务是进⾏系统扩容,满⾜业务的性能和容量需求。
回顾腾讯会议数据库⾯对流量突增的过程,作为腾讯会议的重要系统基础⽀持,随着流量的持续暴涨,优化之后 TDSQL 进⾏了⼀轮快速的数据库机器⽔平扩容实践:通过 TDSQL 策略丰富的读写分离技术,数据库层⾯快速响应了持续增长的容量和性能需求。
为了尽可能的将读请求分离,进⼀步降低对主节点的影响,TDSQL通过读写账号分离、灾备只读实例等措施,将纯只读业务分离出来,进⼀步降低主节点的压⼒提⾼整体的吞吐量。
最终,25%的复杂查询根据读写分离策略发往只读实例,快速达到降低主节点的负载的效果。
健壮的分布事务能⼒⽀撑,持续不断地进⾏性能优化。
SQLEngine 作为协调节点,⽆状态,能满⾜业务层⼏乎⽆限制的⽔平扩容需求。
不停机⽆损线性⽔平扩容,保障系统⾼可⽤、⾼性能,数据库技术架构如何做到?中间有哪些看不见的坑,有没有经过了实际验证的最佳⽅案?数字化转型全局发展正在提速,流量洪峰渐成常态****,未来,我们需要怎样的分布式技术架构系统?以下我们⼀⼀拆解。
TDSQL简介

TDSQL(Titan Distribute SQL) —一种分布式数据库之容灾篇一、传统的分库分表及由此引入的问题由于业务数据量巨大以至于无法单表存储,于是,我们习惯了分库分表的方式。
最常用的莫过于按照QQ号的后三位分1000表,除此之外,还有按照大区分表,按照时间分表,等等。
于是我们习惯了下面这样一种SVR与DB交互的架构结构。
图1—传统的分库分表存储这个我们习以为常的数据库存储结构,其实包含了一些问题,本篇将主要讨论主备一致性切换问题,并给出TDSQL主备切换的方式。
问题如下:1、主备的异步同步,在主机宕机的情况下,无法保证数据已经同步到了备机。
2、人工切换,则对DBA同学的实时处理提出非常高的要求。
3、自动切换,可能出现不同SVR对于主DB的健康状态判断不一致,造成不同SVR把数据写入到不同DB的情况即——脑裂。
4、即使通过仲裁节点来统一调度SVR连向主DB或者备DB,如果流程处理的不好,也可能因为SVR感知切换的时间差在短时间内造成脑裂。
如何解决上面的问题,业界给出了很多的方案,例如国外有Galera这种通过协议插件来实现一致性的方案(但这种方案在跨IDC时的性能非常差),国内也有阿里RDS,TDDL,360的atlas中间件,但上述的方案要么在主备切换的一致性,要么在主动切换,要么在性能上都会有或多或少的问题,因此我们在参考上述方案的基础上实现了今天要给大家介绍的方案Titan Distribute SQL —TDSQL。
二、TDSQL主备切换方案2.1 TDSQL容灾架构图二、TDSQL容灾架构图二是一个大家熟悉的具备调度能力的分布式集群,下面分别来介绍一个各个模块的作用及如何互动。
DB——图中的绿色部分,是集群的核心部分,也就是mysql节点。
为了实现主备的强一致性和较高的性能,这里必须使用我们在Mariadb 基础上进行二次开发的MySQL。
注意,只有主DB提供写服务,其它DB会被Agent自动设置成只读。
腾讯云-TDSQL分布式数据库服务概述

TDSQL分布式数据库服务产品概述目录产品简介产品概述 (4)简介 (4)解决问题 (4)单机数据库瓶颈 (4)应用层分片开发工作量大 (4)开源方案或 NoSQL 难题 (4)产品优势 (6)超高性能 (6)专业可靠 (6)简单易用 (6)应用场景 (7)大型应用(超高并发实时交易场景) (7)物联网数据(PB 级数据存储访问场景) (7)文件索引(万亿行数据毫秒级存取) (7)高性价比商业数据库解决方案 (7)基本原理水平分表 (9)概述 (9)水平切分 (9)写入数据( SQL 语句含有 shardkey ) (11)数据聚合 (12)读取数据(有明确 shardkey 值) (12)读取数据(无明确 shardkey 值) (12)读写分离 (14)功能简介 (14)基本原理 (14)只读账号 (14)弹性拓展 (15)概述 (15)扩容过程 (15)新增分片扩容 (15)现有分片扩容 (15)强同步 (17)背景 (17)存在问题 (17)解决方案 (17)实例架构 (19)地域选择 (20)产品简介产品概述19-11-19 10:36:08简介分布式数据库 TDSQL(TencentDB for TDSQL,TDSQL)是部署在腾讯云上的一种支持自动水平拆分、Shared Nothing 架构的分布式数据库。
分布式数据库即业务获取的是完整的逻辑库表,而后端会将库表均匀的拆分到多个物理分片节点。
TDSQL 默认部署主备架构,提供容灾、备份、恢复、监控、迁移等全套解决方案,适用于 TB 或 PB 级的海量数据库场景。
解决问题单机数据库瓶颈面对互联网类业务百万级以上的用户量,单机数据库由于硬件和软件的限制,数据库在数据存储容量、访问容量、容灾等方面都会随着业务的增长而到达瓶颈。
TDSQL 目前单分片最大可支持6TB存储,如果性能或容量不足以支撑业务发展时,在控制台自动升级扩容。
升级过程中,您无需关心分布式系统内的数据迁移,均衡和路由切换。
分布式数据库TDSQL架构原理概述

分布式数据库TDSQL架构原理概述TDSQL(TiDB Distributed SQL)是一个分布式数据库架构,它是由PingCAP公司开发的一款开源数据库。
TDSQL具有强一致性、高可用性和水平可扩展性的特点,适用于大规模、高并发的数据存储和处理需求。
TDSQL的架构原理主要包括三个方面:存储层、计算层和协调层。
存储层是TDSQL的核心组件,它负责数据的存储和管理。
存储层采用分布式存储的方式,将数据分成多个分片,并将每个分片复制到不同的节点上,以保证数据的冗余和可靠性。
存储层采用Raft协议保证数据的一致性,通过多副本和强一致性保证数据的可靠性和持久性。
此外,存储层还支持水平扩展,可以根据需求增加节点来扩展存储容量和处理能力。
计算层是TDSQL的查询和计算引擎,它负责接收用户的查询请求,并将请求转化为分布式查询任务。
计算层采用分布式查询的方式,将一个查询任务拆分成多个子任务,并将子任务分配给不同的节点进行并行处理。
计算层通过调度和协调各个节点上的计算任务,最终将结果返回给用户。
计算层采用分布式索引和分布式事务的方式,使得在大规模数据查询和处理中依然能够保持较高的性能和可用性。
协调层是TDSQL的调度和管理中心,它负责监控和管理存储层和计算层的状态,并进行资源调度和任务分配。
协调层采用分布式锁和容错机制,确保系统的高可用性和故障容忍性。
协调层还支持动态负载均衡和自动故障转移,可以根据负载和节点状态动态管理和分配资源,提高系统的性能和可用性。
协调层也负责处理用户的请求和权限管理,对外提供统一的接口和服务。
总结起来,TDSQL的架构原理基于分布式存储、计算和协调的方式,实现了数据的分片和复制、任务的并行和调度、资源的管理和负载均衡,并通过分布式事务和索引保证了数据的一致性和性能。
通过这种设计,TDSQL能够满足大规模、高并发的数据存储和处理需求,提供高可靠性、高可用性和高扩展性的分布式数据库解决方案。
TDSQL核心架构

TDSQL核心架构TDSQL(Tencent Distributed SQL)是腾讯公司自主研发的一种分布式关系型数据库系统,其核心架构是基于传统关系数据库的基础上进行扩展和优化而成。
它采用分布式存储和计算的方式,通过将数据切分和分片存储在多个节点上,实现了数据的高可用性和横向扩展能力。
1. 存储引擎(Storage Engine):存储引擎是TDSQL的核心组件,负责管理数据的存储和读写。
TDSQL采用了分布式存储的方式,将数据切分成多个片段,每个片段存储在不同的节点上。
存储引擎通过管理这些片段的分布和复制,实现了数据的高可用性和负载均衡。
2. 查询引擎(Query Engine):查询引擎负责解析和执行用户的SQL查询请求。
它将查询分解成多个子查询,并将这些子查询发送到存储引擎上执行。
查询引擎还负责进行查询优化,通过选择最优的执行计划来提高查询的性能。
3. 分布式事务管理器(Distributed Transaction Manager):分布式事务管理器负责管理分布式数据库系统中的事务。
它使用分布式事务协议来协调不同节点上的事务操作,并保证数据的一致性和隔离性。
分布式事务管理器还负责恢复和回滚失败的事务,并处理并发冲突。
4. 元数据管理器(Metadata Manager):元数据管理器负责管理数据库的元数据。
它包括表、列、索引等数据库对象的定义和关联关系。
元数据管理器还负责数据的分布和复制策略的管理,以及数据对应关系的调整和优化。
5. 外部连接管理器(External Connection Manager):外部连接管理器负责管理TDSQL与外部系统的连接。
它支持与其他数据库、消息队列等系统的数据交互,并提供数据同步和数据迁移的功能。
外部连接管理器还支持分布式事务和跨节点查询的功能。
总之,TDSQL的核心架构是基于传统关系数据库的基础上扩展和优化而成的分布式关系数据库系统。
通过将数据切分和分片存储在多个节点上,以及采用分布式事务管理和查询优化的技术,实现了数据的高可用性和横向扩展能力。
金融云分布式数据库TDSQL技术架构

2002
2004
2008
业务爆炸 一致性、 7X24可用性
2010
腾讯计费 超高并发超短 时延
2012
米大师,腾讯 充值 更名TDSQL
2014
2015
腾讯SP业务 原生MYSQL
增值业务 分库分表手工 伸缩
WeBank 私有化部署
腾讯云 金融云
TDSQL 数据库的特点
基于MySQL生态
MySQL100%兼容
Agent Slave3 6
Agent Master Agent Slave2
SET
1、主DB降级为备机 2、参与选举的备机上报最新的binlog点 3、scheduler收到binlog点之后,选择出binlog最大的节点
4、重建主备关系 5、修改路由 6、请求发给新的主机
TDSQL强一致原理(恢复阶段不丢失数据)
增加节点 C(主) T1,T2,X3,X4 Xtrabackup自动快速 重做 D( 备 ) T1,T2,X3,X4
TDSQL高性能原理
半同步复制(同步 降级为 异步)
Binlog Dump
异步复制
TDSQL高性能原理
User Thread
Com mit(T1) O K( T1) Engine commit
HASH分区
两级分区
RANGE分区 全局唯一数字序列
group by, Order by Max,sum,min,ave等聚合函数 Distinct,count(1) 同一个group内的join 事务
只读帐号支持读写分离
热点更新
Data Buffer脏页刷出效率提升
TDSQL分布式方案(部署)
永不停机、高一致性
腾讯云数据库TDSQL在金融核心的实践

◆ TDSQL
物理设备操作系统(加强定制版Linux)
调度系统
故障迁移 业务调配
当前金融行业技术现状
传统技术架构遇到瓶颈
目前国内大中型银行主要以国外厂商提供的大型主机和数 据库解决方案来进行系统构建。以国外大型主机和数据库 为核心的架构已无法满足大规模交易和数据处理的需求。
一方面:性能无法满足业务不断激增的处理需求,存在系 统过载风险; 另一方面:本身价格比较昂贵,维护成本居高不下。
总行机房
SQL Engine
同城
灾备机房
SQL Engine
异地
SQL Engine
Master
强同步
Slave
异步 Master
异步
强同步
Slave
Slave
Slave
#1 #2
#3 #4
#5
TDSQL最佳实践-完善的全白屏化运维方案
实时诊断优化 效果可预见
掌上运维 AI 助力
TDSQL最佳实践-软硬一体解决方案
“张家港农商银行采用基于腾讯TDSQL的分布式数据库架构建设, 硬件投入从千万级降低到百万级,硬件成本下降75%以上,性能并 可线性增长。”
—— 张家港农商行
◆比如高并发低延时的场景拆分后仍不满足的业务,可以引入缓 存进一步加速; ◆需要更强的查询分析能力的话可以引入等面向联机分析的产品。
核心系统改造:循序渐进,选择最合适的技术方案
第四步:单元化改造
◆ 无限可伸缩微服务架构 ◆ 异地多活部署 ◆ 异构机房上的弹性混合云架构
User=0 User=1 User=2
2019.7 生产机器性能论证
2019.8 项目投产
TDSQL最佳实践-产品定位
TDSQL分布式金融级数据库架构

可见
TDSQL》
未来展望
腾讯TDSQL分布式金融级数据库架构
全局读一致性
面向金融类业务,十年积累,亿级账户验证
腾讯公司内与计费、充值、转账、财务等核心系统90%以上都使用TDSQL!
2002
2004
2008
2010
2012
2014
腾讯SP业务 原生MYSQL
增值业务 分库分表手工
伸缩
业务爆炸 一致性、 7X24可用性
腾讯计费 超高并发超短
低效
所有事件全序排序=>所有事务全 局排序,低效
数据是否可读,需要通过全局事 务提交状态验证,增加通讯次数
案例
Pg XC
某些系统 SS2PL+MVCC
Spanner SS2PL+MVCC
CockroachDB SSI+MVCC
5
2次读
增加了通讯轮数,且只能解决读 学术界的解决
《Scalable atomic visibility with
有异 常
有异 常
• 写-写
有异 常
• 写-读
并发操作可以被区分为四种:读-读、读-写、写-读、写-写
两个数据节点Na、Nb;两个数据项X、Y Na节点commit完成;Nb节点commit未完成 全局该事务处于committing状态
读半已提交数据异常
结果:账目不平
第1个分布式事务
第2个分布式事务
目录 CONTENTS
分布式事务处理模型与数据异常 业界主流数据库的解决方式
TDSQL全局读一致性的实现技术
解决方案
编号 1 2
3
4
各种方案 全局事务管理器 基于封锁的并发访问控制算法+全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2002
2004
2008
业务爆炸 一致性、 7X24可用性
2010
腾讯计费 超高并发超短 时延
2012
米大师,腾讯 充值 更名TDS务 原生MYSQL
增值业务 分库分表手工 伸缩
WeBank 私有化部署
腾讯云 金融云
TDSQL 数据库的特点
基于MySQL生态
MySQL100%兼容
Agent Slave3 6
Agent Master Agent Slave2
SET
1、主DB降级为备机 2、参与选举的备机上报最新的binlog点 3、scheduler收到binlog点之后,选择出binlog最大的节点
4、重建主备关系 5、修改路由 6、请求发给新的主机
TDSQL强一致原理(恢复阶段不丢失数据)
增加节点 C(主) T1,T2,X3,X4 Xtrabackup自动快速 重做 D( 备 ) T1,T2,X3,X4
TDSQL高性能原理
半同步复制(同步 降级为 异步)
Binlog Dump
异步复制
TDSQL高性能原理
User Thread
Com mit(T1) O K( T1) Engine commit
金融云分布式数据库TDSQL技术架构
技术创新 变革未来
TDSQL简介
目录
CONTENTS
TDSQL架构与分布式方案 TDSQL分布式事务处理 分布式事务处理技术
金融级云数据库解决方案(CDB for TDSQL)
腾讯公司内与计费、充值、转账、财务等核心系统90%以上都使用TDSQL!
面向金融类业务,十年积累,亿级账户验证
HASH分区
两级分区
RANGE分区 全局唯一数字序列
group by, Order by Max,sum,min,ave等聚合函数 Distinct,count(1) 同一个group内的join 事务
只读帐号支持读写分离
热点更新
Data Buffer脏页刷出效率提升
TDSQL分布式方案(部署)
A( 主 ) T1,T2,T3 A宕机, C选举成 新的主 机 C( 主 ) T1,T2,X3,X4
B(备) T1
C(备) T1,T2
B( 备 ) T1,T2,X3,X4
重新加入,可能需 要回退部分事务 C( 主 ) T1,T2,X3,X4 回退事务T3 B( 备 ) T1,T2,X3,X4 A( 备 ) T1,T2,T3,X3,X4 B( 备 ) T1,T2,X3,X4
Send T2 Inform(T1) 返回应答 ACK(T1)
master
主备复制方案(跨IDC) 异步 半同步 强同步 MariaDB Galera Cluster
slave
TPS 20,000 2,200 20000 6,000 时耗(ms) <10 4~600ms 18 <10 4~10000ms
高一致性
高可用性
安全可靠
弹性容量
性能卓越
7
TDSQL简介
目录
CONTENTS
TDSQL架构与分布式方案 TDSQL分布式事务处理 分布式事务处理技术
数据库部署架构
数据库节点组(SET)由MySQL数据 库、监控和信息采集模块组成一主 二从数据库节点。 调度集群作为集群的管理调度中心, 主要管理数据库节点组、接入网关 集群的正常运行 接入网关集群账号鉴权、管理连接、 SQL解析、分配路由
…
G255
实时在线自动扩容
DCDB的整个迁移过程采用: 移存量数据、迁移增量数据、数据检验、再追增量、切换路由、清理 六个步骤循环迭代进行。 该能力经过腾讯内部近千个业务验证,至今未发生过一次数据丢失或错误。
13
TDSQL强一致原理 SE T
主
4
IDC1
2
3 2
3
备
IDC2
备
IDC3
14
TDSQL强一致原理(确保没有脏数据)
分布式文件系统(HDFS)提供数据灾 备服务,提供至少3份备份
异地容灾数据库节点组部署在主节 点以外的异地机房。
9
数据库核心架构
10
数据分布
11
TDSQL分布式方案(自动扩容)
G0
Set 00 Set 01 Set … Set 255
网关
set 00
G 0 … G 1
G255
网关
G1
G
扩 容
G
永不停机、高一致性
基于OLTP场景
数据库集群
5
TDSQL 数据库的特点
跨机房部署
网络故障不影响业务
三重保障
集群内保障3套节点,单 点故障整体稳定
数据强同步
主备数据完全一致
金融级安全
支持物理专享,支持数 据库审计,支持加密等
可用性:99.999%
数据可靠性:99.99999%
6
TDSQL 数据库的特点
TDSQL高性能原理
更新索引 QPS:10万,99%的 <10ms 纯select QPS:50万,99%的 <5ms
主
备
备
环境:ts85机型(x86,24核(48超线程),512G内存 ,6T SSD)
19
TDSQL分布式方案(可靠的备份系统)
数据备份
热备:实时同步,实时加载 冷备:快照 + binlog
保存 THD 回话
User ACK Thread
write
Binlog
Dump Thread
read
Dump ACK Thread
IO Thread
SQL Thread
Send Transaction(T1) with ACK request write
relaylog
read
Com m it(T2)
两地三中心
两地四中心 -–(自动化切换的强同步架构)
TDSQL简介
目录
CONTENTS
TDSQL架构与分布式方案 TDSQL分布式事务处理 分布式事务处理技术
数据恢复
就地恢复(闪回/补录) 新节点重建(冷备+binlog) 定点回退(冷备+binlog)
冷备中心 HDFS
全量冷备
实时热备 延迟加载
主
备0
…
备(n-1)
SE T
TDSQL分布式方案(特性)
所有的Set还是原来的NoShard实例 同一个用户的所有表在一起 小表可以广播到所有的Set 每个表都支持全局唯一序列号
1、主机可读可写,备机只读,备机可以开放给业务查询使用 2、任何时刻同一个SET不能有两个主机 3, 宁愿拒绝服务,不提供错误的服务,追求CAP中的C,必要的时候牺牲部分A
Scheduler Scheduler
Agent Proxy Master DB
Agent Slave 1 Proxy Agent Slave 2 SET