25|事务(四):持久性,吃一碗粉就付一碗粉的钱
陈现麟
该思维导图由 AI 生成,仅供参考
你好,我是陈现麟。
通过上节课的学习,我们掌握了通过 MVCC 和 2PL 实现分布式事务隔离性的技术原理,并且也明白了隔离级别是事务在正确性和性能之间的一个权衡,以后在极客时间的业务研发中,我们就可以根据业务特点,对事情的隔离级别做出正确的选择了。
虽然事务在有了一致性、原子性和隔离性的保障后,已经可以很好地保障业务在各种使用场景下的正确性了,但是如果机器突然断电或者崩溃,导致已经提交成功的事务数据丢失了,最终也就功亏一篑了。
所以在这节课中,我们将一起来讨论如何确保机器在突然断电、崩溃等异常情况下,不会将已经成功的事务数据丢失掉的问题,即事务的持久性。
我们首先会通过持久性的定义分析出它面临的挑战,然后再一起讨论一下如何通过非易失性存储来保障事务的持久性,最后一起讨论在分布式系统中,如何通过数据复制来进一步提高事务的持久性。
持久性的挑战
持久性在事务中的定义是,如果一个事务已经提交,不论什么原因,它产生的结果都是永久存在的,这保证了事务的结果不会丢失。通过持久性的定义,我们会发现要保证事务的持久性,一个显而易见的思路就是,将事务的结果立即写入到非易失性存储设备中,比如 SSD 硬盘和 SATA 硬盘等,并且写入的副本数越多,持久性就越高。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了分布式事务中持久性的重要性和挑战,以及解决方案。首先介绍了持久性的定义和挑战,指出了立即写入非易失性存储设备的理想与现实之间的矛盾。随后详细分析了通过非易失性存储来保障事务的持久性,重点讨论了顺序写入日志的方式,如重做日志和预写日志。文章还探讨了通过磁盘阵列和网络复制数据来解决持久性问题的思路,并提出了共识算法如Raft和Paxos的应用。总结指出,持久性保证了事务结果不会因数据丢失而出现异常,强调了持久性在分布式系统中的重要性。整体而言,本文深入浅出地阐述了持久性在分布式事务中的挑战和解决方案,对技术人员具有实际指导意义。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》,新⼈⾸单¥59
《深入浅出分布式技术原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- wenxuan思考题的一些想法,可以把多个小文件合并成大文件(比如 8 M)存储,记录下每个原始文件的起始位置和偏移量,通过 `seek` 快速定位到起始位置进行读取。删除导致的文件空洞可以通过定期合并来解决。
作者回复: 👍非常赞的想法,Facebook 的图片存储 haystack 就是这样做的。
2022-03-3113
收起评论