腾讯TDSQL分布式金融级数据库的全局读一致性技术

合集下载

Tencent大数据技术架构

Tencent大数据技术架构
1、监控实例状态并上报; 2、监控表状态并上报; 3、拉取并执行数据搬迁任务; …
SetA
网关 主 MySQL + Agent 备1 MySQL + Agent

应用 MySQL API
备2n MySQL + Agent
网关
SetB
网关 主 MySQL + Agent 备1 MySQL + Agent

备2n MySQL + Agent
1、识别DDL类sql,并以任务形式保存至scheduler; 2、解析DML类sql,并转发至对应Set; 3、收集Set返回的结果,组合后返回请求端; 4、watch并获取表的访问路由; …
容量:自动分表
GW(逻辑表) Mysql(物理表) GW(逻辑表) Mysql(物理表)
T 0 T 1
T
T
当SET资源不够或表 记录超标时,触发 扩容,物理表分裂
T 2 T T 3
该过程自动完成
初始态:逻辑表=物理表
T n
扩容后:逻辑表=N个物理表
容量:自动伸缩
伸缩方式
整表迁移 子表分裂
T1 T2 T3
原则:避免表分裂,及时表合并 表分裂的问题
在一个集群中,每次表分裂,会导致集群 表数量的增加;集群中表的数量就是路由 的条数,表数量越多,路由的效率就会越 低

• •
采用hardlimit+softlimit结合的方式
Hardlimit保证安全,不超机器总容量 Softlimit保证充分利用整机资源
14
Gaia 技术特点
强扩展性:支持单cluster万台规模
(即将达到
8800节点,20w+核,1500个pool)

腾讯云-TDSQL分布式数据库服务概述

腾讯云-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架构原理概述TDSQL(TiDB Distributed SQL)是一个分布式数据库架构,它是由PingCAP公司开发的一款开源数据库。

TDSQL具有强一致性、高可用性和水平可扩展性的特点,适用于大规模、高并发的数据存储和处理需求。

TDSQL的架构原理主要包括三个方面:存储层、计算层和协调层。

存储层是TDSQL的核心组件,它负责数据的存储和管理。

存储层采用分布式存储的方式,将数据分成多个分片,并将每个分片复制到不同的节点上,以保证数据的冗余和可靠性。

存储层采用Raft协议保证数据的一致性,通过多副本和强一致性保证数据的可靠性和持久性。

此外,存储层还支持水平扩展,可以根据需求增加节点来扩展存储容量和处理能力。

计算层是TDSQL的查询和计算引擎,它负责接收用户的查询请求,并将请求转化为分布式查询任务。

计算层采用分布式查询的方式,将一个查询任务拆分成多个子任务,并将子任务分配给不同的节点进行并行处理。

计算层通过调度和协调各个节点上的计算任务,最终将结果返回给用户。

计算层采用分布式索引和分布式事务的方式,使得在大规模数据查询和处理中依然能够保持较高的性能和可用性。

协调层是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和mysql语法

tdsql和mysql语法

tdsql和mysql语法
TDSQL(Tencent Distributed Structured Query Language)
是腾讯公司开发的一种分布式数据库管理系统,而MySQL是一种流
行的开源关系型数据库管理系统。

它们都有自己独特的语法和特点。

首先,让我们来看一下TDSQL的语法特点。

TDSQL支持标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE等常见的SQL操作。

与传统的关系型数据库不同,TDSQL还支持分布式SQL查询和
分布式事务处理,可以处理大规模数据的存储和查询。

TDSQL还提
供了一些特有的语法和函数,用于处理分布式环境下的数据操作,
比如分区表的语法、分布式索引的语法等。

而MySQL的语法特点也非常明显。

MySQL同样支持标准的SQL
语法,但它也有一些自己独特的语法和特性。

比如MySQL支持存储
过程和触发器,可以在数据库中编写复杂的逻辑处理。

此外,MySQL
还有一些特有的数据类型和函数,比如JSON数据类型和相关的
JSON函数,以及空间数据类型和相关的空间函数。

在使用这两种数据库时,需要根据具体的需求和场景来选择合
适的语法和特性。

如果需要处理大规模的分布式数据,TDSQL可能
是更好的选择,因为它专为分布式环境设计。

而如果需要复杂的逻辑处理或者特定的数据类型支持,MySQL可能更适合。

当然,在实际应用中,也可以结合使用这两种数据库,根据具体的业务需求来选择合适的数据库和语法。

总之,了解并熟练掌握它们的语法特点对于合理选择和使用数据库是非常重要的。

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
各种方案 全局事务管理器 基于封锁的并发访问控制算法+全

tdsql

tdsql

tdsqlTDSQL简介及其应用领域一、TDSQL概述TDSQL(Tencent Database SQL)是腾讯云推出的一种基于MySQL协议进行扩展的分布式关系型数据库引擎。

TDSQL的设计目标是提供高性能、高可用性和可伸缩性,同时保持与MySQL的兼容性,使得迁移现有MySQL应用程序到TDSQL变得简单。

二、TDSQL的特点1. 高性能:TDSQL通过多节点、多副本及基于站库模式的读写分离架构,可以提供高吞吐量和低延迟的数据库性能。

2. 高可用性:TDSQL的数据存储采用分布式存储架构,具备自动数据备份、容灾切换和故障恢复等功能,以保证用户业务的持续运行。

3. 数据安全性:TDSQL支持数据的安全备份和恢复,并提供多层次的权限管理和访问控制,以保护用户数据的安全。

4. 兼容性:TDSQL完全兼容MySQL协议和SQL语法,可以直接支持现有的MySQL应用程序的迁移。

5. 可扩展性:TDSQL提供了水平扩展的能力,可以根据业务需求灵活地增加或减少节点的数量,以满足不同规模的应用需求。

三、TDSQL的应用领域由于TDSQL具备高性能、高可用性和可扩展性的特点,它在很多应用场景中都有广泛的应用。

1. 互联网行业:在互联网行业中,对数据库的性能和可扩展性要求较高。

TDSQL作为一种高性能的分布式数据库,能够满足互联网应用的高并发读写需求,并可以根据业务需求进行弹性扩容,以适应不断增长的数据量和用户访问量。

2. 电子商务:电子商务平台通常需要处理大量的交易数据,并保证数据的安全和一致性。

TDSQL提供了高可用性的数据存储和备份机制,可以确保交易数据的可靠性,并通过水平扩展的方式满足大规模交易的需求。

3. 游戏行业:游戏行业对数据库的性能和可扩展性要求较高。

TDSQL作为一种高性能的分布式数据库,可以满足复杂的游戏数据操作需求,如玩家数据存储、排行榜和战斗数据等。

同时,TDSQL的容灾切换和故障恢复能力可以确保游戏的稳定运行。

GoldenDB分布式事务全局一致性

GoldenDB分布式事务全局一致性

87业界观察Industry Observation2019 . 10 中国金融电脑GoldenDB 分布式事务全局一致性中兴通讯股份有限公司 李磊 陆天炜 付裕金融行业的数据库必须具备事务处理实时一致、数据复制安全可靠、性能容量线性扩展、运维操作简单易用等特点,其中事务的实时一致性尤为重要。

而分布式架构下的事务实时一致性是一个难点。

分布式事务一致性难点分布式数据库系统中事务的实时一致性的难点主要表现在三个方面:分布式环境中事务的原子性,分布式环境中事务的隔离性以及备份数据恢复后的事务一致性。

1. 原子性传统关系型单机数据库通过日志先落盘(WAL)、故障恢复(crash recovery)等机制保证事务的原子性。

在分布式数据库中,分布式事务必须分解成若干子事务下发到数据节点上去执行。

子事务的原子性是由各个数据节点进行保证的,无法保证分布式事务的原子性。

分布式事务一致性需要应用系统或者分布式数据库本身实现。

如果应用层实现事务一致性必须进行大量的事务处理改造。

大大增加了应用的处理逻辑,失去了在传统领域应用的价值。

2. 隔离性传统关系型单机数据库的隔离性,能够很好地解决并行事务间数据访问的冲突问题。

事务的隔离性也可以根据应用的需求进行不同级别的设置。

分布式数据库由于各个子事务分散在数据节点上进行,每个数据节点只能保证节点内部数据的隔离性。

并行的全局事务由于各子事务完成时间无法同步,其隔离性也就无法通过数据节点隔离性来保证。

当某个数据节点已经完成了子事务的提交之后,从单节点层面已经允许并行事务对涉及到的字段进行读写。

全局事务涉及到的其他数据节点并没有完成全局事务处理,容易引起脏读和丢失更新类的问题。

因此分布式事务的隔离性也是分布式数据库中设计的重点,特别是面向金融级要求强一致性读写的应用。

3. 备份恢复一致性传统关系型单机数据库对于事务操作的原子性能够保证数据在备份恢复的时候数据的一致性不受损。

分布式数据库系统在备份某一特定时刻的数据时,无法确保多个单一的数据节点上的备份操作,所备份的数据都是全局提交的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全局读一致性---腾讯TDSQL分布式金融级数据库
面向金融类业务,十年积累,亿级账户验证
腾讯公司内与计费、充值、转账、财务等核心系统90%以上都使用TDSQL!
2002
腾讯SP业务原生MYSQL
2004
增值业务
分库分表手工
伸缩
2008
业务爆炸
一致性、
7X24可用性
2010
腾讯计费
超高并发超短
时延
2012
米大师,腾讯
充值
更名TDSQL
2015
腾讯云
金融云
2014
WeBank
私有化部署
2017
分布式
事务
2018
全时态
数据库
向上攀登
永不止步2019
全局读
一致性
分布式事务处理模型与数据异常
目录CONTENTS 业界主流数据库的解决方式TDSQL 全局读一致性的实现技术
并发操作可以被区分为四种:读-读、读-写、写-读、写-写•写-读
•写-写•读-写•读-读
无异

有异常有异常有异

读半已提交数据异常●两个数据节点Na、Nb;两个数据项X、Y
结果:账目不平
●Na节点commit完成;Nb节点commit未完成
●全局该事务处于committing状态
第1个分布式事务第2个分布式事务
分布式事务处理模型与数据异常
目录CONTENTS 业界主流数据库的解决方式TDSQL 全局读一致性的实现技术
解决方案
编号各种方案缺点案例
1全局事务管理器非去中心化、低效Pg XC
2基于封锁的并发访问控制算法+全
局可串行化低效某些系统
SS2PL+MVCC
3全局可串行化+线性一致性所有事件全序排序=>所有事务全
局排序,低效
Spanner SS2PL+MVCC
4全局可串行化+混合逻辑时钟+全局
事务提交标志数据是否可读,需要通过全局事
务提交状态验证,增加通讯次数
CockroachDB
SSI+MVCC
52次读
《Scalable atomic visibility with
ramp transactions》增加了通讯轮数,且只能解决读
半已提交数据异常
学术界的解决
方式
更多的数据异常……分布式读半已提交异常Cross 异常
Carsten Binnig, Stefan Hildenbrand, Franz Färber, Donald Kossmann,
Juchang Lee, Norman May: Distributed snapshot isolation: global
transactions pay globally, local transactions pay locally. VLDB J. 23(6):
987-1011 (2014)。

相关文档
最新文档