超多干货!支撑起腾讯公司计费业务的TDSQL(附PPT)

本文由腾讯金融云专家工程师bluesea分享,介绍TDSQL分布式数据库,它支撑腾讯计费业务及微众银行核心系统。文章探讨了TDSQL的事务处理技术,包括并发控制、数据异常现象、并发访问控制,以及主流数据库的事务处理对比。TDSQL通过分布式事务处理机制实现数据强一致性。
摘要由CSDN通过智能技术生成




bluesea,腾讯金融云专家工程师,从事分布式数据库TDSQL研发工作。出版著作:《数据库查询优化器的艺术 原理解析与SQL性能优化》、《数据库事务处理的艺术 事务管理与并发控制》,广受好评。同时,bluesea还是中国人民大学信息学院工程硕士企业导师。

 

TDSQL是一个稳定运行了十年之久的分布式数据库,不仅支撑了腾讯公司的计费业务,而且还在微众银行等金融单位的核心业务系统稳定、高效地运行了四年之久。这几年,TDSQL在技术层面不断进步,研发了很多新特性,诸如多级分区、热点更新、隐含主键、分布式事务等,不仅有力的支撑了事务型的数据库应用,而且在体系结构上也朝Spanner架构上迈进,是一个名副其实的NewSQL系统。


MySQL/TDSQL的事务处理技术,主要包括四个方面的内容。其中,核心重点是并发控制技术。


第一,数据异常现象,这里不仅介绍有大家熟知的、SQL标准规定的三种读数据异常,还有其他的八种异常,会极大扩展大家对数据异常的认识。

第二,MySQL的事务处理技术,包括ACID的各个内容。

第三,MySQL的并发访问控制技术。并发控制技术是数据库事务处理的核心技术。可以说,没有事务处理,数据库就不能算是数据库;没有并发控制技术,事务处理也只是一个名词而已。毫不夸张地说,并发控制技术是核心技术的核心。

第四,基于对MySQL的认识,可以理解主流的数据如Oracle、Informix

数据异常

首先,我们谈第一个问题:数据异常现象有哪些?


这列出了大家都熟悉的三种读数据异常,分别是脏读、不可重复读、幻读。我们看其中一个,比如说脏读。第一步,T2事务修改了数据行row;第二步,T1事务对同一个数据行row读取;第三步,T2事务回滚。这对于事务T1而言,读到的数据是将被回滚的数据,这就是脏读。


有朋友会问,脏读,也没有什么大不了的。试想一下,一个骗子T2转帐1000元给事务T1,事务T1检查自己的账户,入账了1000元,然后事务T1把一件衣服卖给了骗子T2,之后骗子T2拿到衣服后回滚了转账1000元的操作,然后逃之夭夭了。事务T1既没有拿到钱还丢失了衣服,损失很大。所以要避免这样的异常发生。


这三个读异常现象,是大家熟知的,也是SQL标准所定义的数据异常现象。那么,除了读异常,还有其他的数据异常吗?


比如说脏写。第一步,事务T1修改数据行row;第二步,事务T2也修改数据行row并提交,数据修改生效。事务T2认为自己的操作是成功的。但不幸的事情发生了,第三步,事务T1回滚了,用旧值替换了被事务T2写过的值。这意味着事务T2存入银行的钱,丢失了,因为帐本上只记着第一步事务T1读取的数据值。这就是写数据发生的数据不一致的现象。


那么,除了这些读和写异常,还有其他的数据异常吗?


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值