2019DTCC大会分享:分布式数据库全局读一致性

640?wx_fmt=gif




作者简介:李海翔,网名“那海蓝蓝”,腾讯金融云数据库技术专家。中国人民大学信息学院工程硕士企业导师。著有《数据库事务处理的艺术:事务管理和并发访问控制》、《数据库查询优化器的艺术:原理解析与SQL性能优化》、《大数据管理》,广受好评。


分享正文:2019年5月8日,腾讯TDSQL团队为中国数据库技术大会DTCC带来了腾讯最新的数据库核心技术:TDSQL原创的全局读一致性技术。


腾讯专家工程师李海翔在DTCC上做了主题为“腾讯TDSQL全局读一致性”的技术内容分享。本次分享,基于数据库事务处理的核心技术并发访问控制技术和分布式系统CAP理论中的一致性,TDSQL原创性提出了全面地解决读一致性的算法,是的分布式事务的一致性和分布式系统的一致性统一在一起。


如下是本次分享的主要内容,从如下八个角度全面分享了全局一致性的前世今生、光辉未来。

  1. 数据库的事务处理技术,解决了什么问题?

  2. 分布式事务型数据库,出现了什么新问题?--读半已提交数据异常

  3. 业界是怎么解决读半已提交数据异常问题的?

  4. 分布式事务型数据库,解决了读半已提交数据异常,就一劳永逸了吗?

  5. TDSQL的事务处理模型

  6. 什么是全局一致性?

  7. TDSQL是怎么解决各种数据异常的?

  8. 展望未来


一 、数据库的事务处理技术,解决了什么问题?

数据库是一个高并发系统,所有的操作,通过事务的语义加以约束。而事务的语义,表现为事务的四个特性,ACID。而一个数据库系统,其最核心的技术,就是事务处理技术,为了保障ACID,数据库使用了多种复杂技术,其中,核心技术的核心是并发访问控制算法。


事务处理技术,有两个初衷:一是数据正确性,二是并发高效率。


数据库的操作,把SQL语句的语义简化后,只有读操作和写操作两种。并发操作,就是读写操作的并发,组合后分为四种:读读、读写、写读、写写。其中,读写、写读、写写三种会产生多种“数据异常现象”。常见的数据异常如图1,发生了这些数据异常,就不能保证上述的数据准确性。

640

图1 事务型数据库系统的常见数据异常


这么多数据异常(图1列出11种),会带来什么问题呢?其表现,是在数据项上,出现了逻辑上不应该出现的“不一致性”现象。说不一致,抽象难理解,看不出其危害,所以我们用“脏读数据异常”举个简单例子:


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


所以,数据库的事务处理机制,就是要避免商业交易(并发的交互行为)出现各种使交易任何一方受损的事情发生。


于是,事务型数据库提出了多种并发访问控制算法(如图2)和其他相关技术,确保商业交易正常。用数据库的术语讲,就是确保ACID四个特性。图2中的多种算法,在单机事务隔离级别的可串行化隔离级别,能够确保图1中的各种数据异常不会发生。(小问题,请思考:分布式事务型数据库中的并发访问控制算法,能否确保图1中的各种数据异常不会发生呢?)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值