腾讯TDSQL分布式金融级数据库的全局读一致性技术
- 格式:pdf
- 大小:1.58 MB
- 文档页数:18
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(TiDB Distributed SQL)是一个分布式数据库架构,它是由PingCAP公司开发的一款开源数据库。
TDSQL具有强一致性、高可用性和水平可扩展性的特点,适用于大规模、高并发的数据存储和处理需求。
TDSQL的架构原理主要包括三个方面:存储层、计算层和协调层。
存储层是TDSQL的核心组件,它负责数据的存储和管理。
存储层采用分布式存储的方式,将数据分成多个分片,并将每个分片复制到不同的节点上,以保证数据的冗余和可靠性。
存储层采用Raft协议保证数据的一致性,通过多副本和强一致性保证数据的可靠性和持久性。
此外,存储层还支持水平扩展,可以根据需求增加节点来扩展存储容量和处理能力。
计算层是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(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可能更适合。
当然,在实际应用中,也可以结合使用这两种数据库,根据具体的业务需求来选择合适的数据库和语法。
总之,了解并熟练掌握它们的语法特点对于合理选择和使用数据库是非常重要的。
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的容灾切换和故障恢复能力可以确保游戏的稳定运行。
87业界观察Industry Observation2019 . 10 中国金融电脑GoldenDB 分布式事务全局一致性中兴通讯股份有限公司 李磊 陆天炜 付裕金融行业的数据库必须具备事务处理实时一致、数据复制安全可靠、性能容量线性扩展、运维操作简单易用等特点,其中事务的实时一致性尤为重要。
而分布式架构下的事务实时一致性是一个难点。
分布式事务一致性难点分布式数据库系统中事务的实时一致性的难点主要表现在三个方面:分布式环境中事务的原子性,分布式环境中事务的隔离性以及备份数据恢复后的事务一致性。
1. 原子性传统关系型单机数据库通过日志先落盘(WAL)、故障恢复(crash recovery)等机制保证事务的原子性。
在分布式数据库中,分布式事务必须分解成若干子事务下发到数据节点上去执行。
子事务的原子性是由各个数据节点进行保证的,无法保证分布式事务的原子性。
分布式事务一致性需要应用系统或者分布式数据库本身实现。
如果应用层实现事务一致性必须进行大量的事务处理改造。
大大增加了应用的处理逻辑,失去了在传统领域应用的价值。
2. 隔离性传统关系型单机数据库的隔离性,能够很好地解决并行事务间数据访问的冲突问题。
事务的隔离性也可以根据应用的需求进行不同级别的设置。
分布式数据库由于各个子事务分散在数据节点上进行,每个数据节点只能保证节点内部数据的隔离性。
并行的全局事务由于各子事务完成时间无法同步,其隔离性也就无法通过数据节点隔离性来保证。
当某个数据节点已经完成了子事务的提交之后,从单节点层面已经允许并行事务对涉及到的字段进行读写。
全局事务涉及到的其他数据节点并没有完成全局事务处理,容易引起脏读和丢失更新类的问题。
因此分布式事务的隔离性也是分布式数据库中设计的重点,特别是面向金融级要求强一致性读写的应用。
3. 备份恢复一致性传统关系型单机数据库对于事务操作的原子性能够保证数据在备份恢复的时候数据的一致性不受损。
分布式数据库系统在备份某一特定时刻的数据时,无法确保多个单一的数据节点上的备份操作,所备份的数据都是全局提交的数据。
腾讯分布式数据库TDSQL金融级能力的架构原理概述目录TDSQL是什么:腾讯如何打造一款金融级分布式数据库我们先初步了解TDSQL产品,以及它的适用场景。
第一章包括四个方面:使用场景、发展历程、核心特性,以及兼容性。
首先,TDSQL是腾讯推出的一款兼容MySQL的自主可控、高一致性分布式数据库产品。
这里我们强调一点,高度兼容MySQL——TDSQL完全兼容MySQL协议,并且做到完全自主可控、数据强一致性。
第二是TDSQL具备分布式的特性,具备一个弹性扩展、高可用的架构。
在互联网行业,海量的用户流量场景很常见,如果数据库不具备可伸缩性、可扩展性,是很难应对如:电商的大型促销,春节抢红包等突增流量的场景,这些其实都是对数据库应对海量用户流量的考验。
目前TDSQL已经服务超过500+的金融政企,行业覆盖银行、保险、证券、政务、互联网金融等各个领域。
我们再看一下TDSQL的前世今生。
TDSQL最早可以追溯到2002年,那个时候其实还不叫TDSQL,它是腾讯计费平台部的一个数据库服务,当时使用了开源的MySQL。
2002年-2007年随着公司业务的发展,腾讯所面临的用户量的压力也越来越大。
这个时候我们提出了7×24小时不宕机的高可用设计方案,来保证数据库能提供7×24小时不间断连续高可用服务。
那个时候,腾讯的增值业务日渐成规模,业务对数据也越来越敏感,对数据可用性的要求越来越高,甚至平时还要防备一些像运营商的光纤被挖断等各种各样的异常场景。
在2007年-2012年,这可能是互联网时代从互联网到移动互联网的发展的快速5年。
当然,公司的业务也是突飞猛进。
我们开始把这个高可用的数据库产品化。
到2012年,TDSQL的雏形就已经出来了,作为一款内部产品,开始在公司内部提供金融级的数据强一致性、可靠性服务。
从2012年起,TDSQL已经在腾讯内部做得已经比较成熟,已经是一个知名的产品了,但是它一直没有对外做商业化。
TDSQL素材1产品简介TDSQL(Tencent Distributed SQL)是腾讯打造的一款MySQL兼容HTAP分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能DBA、自动化运营、监控告警等配套设施,为用户提供完整的分布式数据库解决方案。
目前TDSQL已经为超过500+的政企和金融机构提供数据库的公有云及私有云服务,客户覆盖银行、保险、证券、互联网金融、计费、第三方支付、物联网、互联网+、政务等领域。
TDSQL亦凭借其高质量的产品及服务,获得了多项国际和国家认证,得到了客户及行业的一致认可。
2九大特性2.1强同步复制多副本强一致性下的高可用方案,基于跨数据中心强同步复制,故障可自动切换,且数据零丢失。
2.2全球部署架构按需部署,轻松实现异地多活,两IDC对等架构、两地三中心架构、两地四中心架构、多地多中心。
2.3分布式水平扩展Auto Sharding机制,实现实时在线无缝扩容,确保集群性能、容量线性增长;提供健壮的分布式事务机制,全SQL兼容,单机数据库迁移TDSQL零门槛。
2.4内核深度优化内核深度定制优化,跨数据中心强同步性能相较于异步零损耗;OLTP TPS相较于原生MySQL提升85%。
2.5企业级安全增强通过透明加密、数据库防火墙、SSL接入、SQL审计等措施,实现事前、事中、事后的全生命周期安全防护。
2.6HTAP内嵌分布式查询引擎,OLTP与OLAP混合支持,同时支持Spark On TDSQL,对不同负载SQL进行智能调度。
2.7多引擎支持支持MySQL社区版、Percona、MariaDB三大分支;支持InnoDB、RocksDB等多种存储引擎。
2.8智能DBA基于海量运营经验加AI的DBA智能诊断系统,快速帮助业务预防、发现、定位并解决问题。
2.9自动化运营体系提供完善的运营配套体系,Binlog订阅、冷备、多源异构数据库同步等,无缝对接周边系统。
全局读一致性---腾讯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)。