分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
19876 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
开篇词 (1讲)
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册

答疑集锦(三) | 思考题解析与数据库底层实现

你好,我是任杰。
到今天为止,我们最后一个模块,分布式正确性及高可用的内容就结束了。恒者行远,思者常新。积极思考是学习精进的重要一环,所以这里我要特别表扬积极留言、主动学习的同学,相信你一定会更有收获。
今天我为你准备了这篇加餐,把第三模块的思考题做一个系统梳理。我还是建议你先看完前面每一讲的内容,自己做了思考之后再看我这份参考答案。

思考题答案

Q:快照隔离虽然比可串行化的级别要低一些,我们也是可以稍作调整就达到可串行化的能力,这个做法叫作串行化快照隔离(SSI,Serializable Snapshot Isolation)。
SSI 主要需要检查的是读写和写读冲突,像下面这幅图展示的一样。那你知道怎么才能正确地找到这些冲突吗?
A:数据库需要记录下来你都读了哪些数据。这样在其他事务写的时候,就能判断是否会对你的读造成了影响。在这里我们要分两种情况考虑。
第一种情况是上图左边的情况。这时候数据库需要知道 T1 的写入操作会影响哪些还没有结束的事务。数据库需要保留读的信息。
第二种情况是上图右边的情况。这时候数据库需要记录 T1 的读操作忽略了哪些相关的、还没有结束的事务。这时候如果 T1 还有任何写的操作,那么就需要考虑将 T1 回滚。需要你注意的是,如果 T1 一直只是读取数据,没有任何写的操作,那么 T1 是不需要回滚的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式数据库底层实现的相关技术特点,包括分布式事务、两阶段提交、失败检测、分布式关系型数据库的搭配方案等内容。作者通过解答一系列思考题,详细解答了关于快照隔离、两阶段提交、分布式事务、失败检测等技术问题,并提出了相应的解决方案。此外,还强调了数据库底层的特殊支持对于实现两阶段提交的重要性。文章还介绍了分布式关系型数据库的搭配方案,包括表存储、索引、缓存、复制、查询、事务、锁等功能的选择和搭配。通过本文的总结,读者可以快速了解分布式数据库底层实现的相关技术特点,为深入学习和探讨分布式系统提供了重要参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部