分布式数据库30讲
王磊
光大银行首席数据架构师
立即订阅
1663 人已学习
课程目录
已更新 4 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (3讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性

王磊 2020-08-14
你好,我是王磊,你也可以叫我 Ivan。
在上一讲的开头,我提了一个问题:对分布式数据库来说,“强一致性”意味着什么?我们经过分析后得出的结论是这个强一致性,包括数据一致性和事务一致性两个方面。然后,我们介绍了数据一致性是怎么回事儿。那么,今天我们会继续这个话题,谈谈事务一致性。
每次,我和熟悉 NoSQL 同学聊到事务这个话题时,都会提到 ACID 和 BASE。甚至,不少同学会觉得 ACID 有些落伍了,以 BASE 为理论基础的 NoSQL,才是当下的潮流。
那我们来看看 BASE 是什么?其实,它代表了三个特性,BA 表示基本可用性(Basically Available),S 表示软状态(Soft State),E 表示最终一致性(Eventual Consistency):
基本可用性,是指某些部分出现故障,那么系统的其余部分依然可用。
软状态或柔性事务,是指数据处理过程中,存在数据状态暂时不一致的情况,但最终会实现事务的一致性。
最终一致性,是指单数据项的多副本,经过一段时间,最终达成一致。这个,我们在第 2 讲已经详细说过了。
总体来说,BASE 是一个很宽泛的定义,所做的承诺非常有限。我认为,BASE 的意义只在于放弃了 ACID 的一些特性,从而更简单地实现了高性能和可用性,达到一个新的平衡。但是,架构设计上的平衡往往都是阶段性的,随着新技术的突破,原来的平衡点也自然会改变。你看,不用说分布式数据库,就连不少 NoSQL 也开始增加对事务的支持了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(8)

  • 赵见跃
    写的太好了!!!
    当初就是学习了林晓斌老师《MySQL 实战 45 讲》,使我认识了极客时间,课程非常好!
    随后又买了几个课程,可惜都没有达到林晓斌老师的高度,曾经一度对极客时间产生了怀疑,
    还好,幸运的是今天看到了王磊的课程,感觉又有希望了。王老师的课程客观理性、深入浅出!
    收获满满,谢谢老师。

    作者回复: 谢谢,这个评价好高呀,写起来更有动力了,哈哈。

    2020-08-14
    4
    6
  • 与路同飞
    老师每节课的思维导图很赞

    作者回复: 希望能帮大家高效得学习课程的内容:)

    2020-08-14
    2
  • distdev
    关于幻读, 一直不明白实际工程中幻读在哪种情况下会有问题?似乎绝大多数情况一个事务看见其他的事务的创建或者删除记录都不是问题。老师能否给举个例子?
    2020-08-14
    1
  • 南国
    首先回答问题,其实对此方面了解不多,强答一下:其实预写日志在我看来就是redo日志,如果redo日志已经成功证明已经落盘,此时数据可以根据redo日志异步的刷回磁盘,写数据表失败应该就是后面异步写回出现问题,我们只需要重演redo日志就可以了。当然这只是最简单的过程,细节还是看其他留言和老师的解答啦

    其实我感觉这一章中既然是说分布式数据库的事务,我觉得也应该说说分布式事务,毕竟我们定义了数据库是分片的,如果事务涉及到多个机器就得上分布式事务了呀。

    还有确实很巧,以前我写过一篇关于事务的博客,里面有几个例子都非常直观,理解起几个文中的概念也更简单些:https://blog.csdn.net/weixin_43705457/article/details/105443927
    2020-08-14
    1
  • AA
    老师,citus可以加入讲讲么
    2020-08-15
  • 扩散性百万咸面包
    我之前的发言有些误解,我再阐述一下:
    SI隔离级别是MVCC,实际上RR也可以用MVCC,不过之前没有这种技术,都用的是2PL。SI主要通过Gap lock来解决RR的幻读?因为光一个MVCC是解决不了幻读的。
    2020-08-15
  • 扩散性百万咸面包
    有点问题:
    快照隔离相当于是比可重复读解决了幻读的问题,文章中说是MVCC的功能特性,但是MVCC并不能解决幻读呀,真正解决幻读的是Gap Lock(Mysql)?

    而且可重复读也可以使用MVCC来实现吧?
    2020-08-15
    1
  • distdev
    关于redo log有一个问题, 就是何时同步到磁盘?完全同步太慢,如果成批处理又有可能丢数据, 老师能否谈谈经验?
    2020-08-14
收起评论
8
返回
顶部