分布式事务—Lec12课前资料
创始人
2024-06-02 03:31:20
0

文章目录

  • 9.1.5 Before-or-After Atomicity: Coordinating Concurrent Threads
  • 9.1.6 Correctness and Serialization
  • 9.5.2 Simple Locking
  • 9.5.3 Two-Phase Locking
  • 9.6.3 Multiple-Site Atomicity: Distributed Two-Phase Commit多点原子性:分布式两阶段提交

9.1.5 Before-or-After Atomicity: Coordinating Concurrent Threads

9.1.6 Correctness and Serialization

1.多个并发操作正确性的概念:如果保证每个结果都可以通过纯串行应用这些相同的操作来获得。
2.保证(1)正确的旧状态 (2)正确的一些列操作 ——> 正确的新状态
在这里插入图片描述
3.before-or-after atomicity定义指的是每一个before-or-after 行为都在另一个before-or-after 行为完全结束或还未开始时运行。保证了操作的序列化

9.5.2 Simple Locking

1.Simple Locking类似于the mark-point discipline标记点原则的思想
2.Simple Locking有两个规则:(1)每个事务读写数据之前要先获取要读写数据的锁。(2)直到事务完成并提交/数据已完全保存并中止才能释放锁
3.the mark-point discipline:事务有一个lock point:第一个获得了所有锁的时刻。获得的所有锁叫做lock set。
4.lock manager强制Simple Locking每个事务在begin_transaction操作时,将它需要的lock set作为参数传入,如果有必要就等待锁可用。

9.5.3 Two-Phase Locking

1.第三种锁原则,两阶段锁,类似read-capture discipline,避免了事务需要提前知道获取哪些锁的要求。
2.两阶段锁允许事务在进行中获得锁,一个事务可以在获取对象的锁之后马上读写该数据对象。也允许事务释放锁,只要不再需要读取该对象。
3.两阶段锁名字来源于:一个事务获得的锁数量,在达到lock point之前是单调递增的,这是第一个阶段;超过了lock point,是单调递减的,这是第二个阶段

9.6.3 Multiple-Site Atomicity: Distributed Two-Phase Commit多点原子性:分布式两阶段提交

1.联合一个带有持续发送者的两阶段提交协议、复制压制和单点事务,我们可以创建一个正确的多点事务。
2.多点事务的难题:协调者和worker之间不能可靠的通信。
解决:构造可靠的两阶段提交协议的分布式版本,应用持久发送者和副本抑制。
3.阶段一:
A 为协调者, B C D 为worker
A ——>B : Please do X as part of my transaction.
B——>A: My part X is ready to commit.
A——>B:PREPARE to commit X.
B——>A: I am PREPARED to commit my part. Have you decided to commit yet? Regards.(准备消息)
(此时A作为协调者容易成为单点故障,如果A崩溃,其他worker都要等待A恢复)
如果此时所有的worker都回复了准备消息,两阶段提交的第一个阶段结束。
如果有一个worker回复了中止消息,或没回复,则A将中止整个事务或者试图将一个另外的worker点来操作这个组件事务。
4.阶段二:
当A标记她自己的输出日志committed时,A提交了整个事务,此时第二阶段开始。
A——>B:My transaction committed. Thanks for your help.
每个worker收到这个消息后,将它的状态从perpared改为committed,执行完需要的提交后置操作后,退出。
而A也可以去做其他的事务了,但是A必须永久记录完成事务的输出,为了防止有还在prepared状态的worker因网络等原因没收到完成的消息,它会重发,A收到后就会重新发送对应事务的输出记录。
5.因为worker作为他们prepared信息的persistent senders,所以A可以确信每个worker最终都会得到她committed的信息,但是却无法保证是实时的。
6.如下图所示,如果无故障,N个worker点的两阶段提交将在3N个消息完成:每一个worker点有prepare信息,prepared的回复信息 和 提交信息。
在这里插入图片描述
7.有的版本的两阶段协议还有第四种信息——从worker点到coordinator的确认信息,来统计worker是否收到committed信息。如果所有worker都已收到,coordinator可以安全的丢弃该事务的输出记录。
8.有些更关注输出记录存储空间和额外信息消耗的系统有些优化,叫做presumed commit(推测提交)
因为预期最多的信息是:committed,所以将committed的信息省略为non-existence。
9.两阶段提交未解决所有的多点原子性问题:如(1)coordinator的崩溃,导致worker们进度无法推进。(2)coordinator和worker之间实时性同步的问题.

相关内容

热门资讯

怎么追高冷内向的男生 怎么追高冷内向的男生烈女怕郎缠,高冷内向的男生拼命的逗他,给他讲笑话,很有可能就在一起了。
性取向心理测试 性取向心理测试不准的就别发了不用测试咯。不用测试了,问这个问题差不多就是了
蜗有虚名,绳头微利什么意思 蜗有虚名,绳头微利什么意思老师要求解释的可真的看不大明白啊蜗角虚名 蜗角:蜗牛的角,比喻细微。微小而...
基金定投的好处都有哪些? 基金定投的好处都有哪些?你好,基金定投最大的好处是可以平均投资成本,避免追涨杀跌,分散投资摊低成本和...
21岁的宋祖儿也叛逆,喜欢深夜... 21岁的宋祖儿也叛逆,喜欢深夜打游戏,你还知道哪些经常深夜打游戏的明星?有哪些深夜打游戏的明星?我知...
閮戝窞姘存浖濠?郑州水曼婷激光... 閮戝窞姘存浖濠?郑州水曼婷激光脱毛效果怎么样?疼不疼激光脱毛确实可以无没哗滑痛永久脱毛的它主要芦尺是...
总有一个人是爱你的,愿意等你? 总有一个人是爱你的,愿意等你?缘分每个人都有的。但是需要自己去争取,有时候缘分到了身边却没抓住。相信...
魔鬼恋人中唯被凌人推下水的是哪... 魔鬼恋人中唯被凌人推下水的是哪一季哪一集,刚从开始的时候。正解是第二集纠正,是绫人。第一季第二集和第...
山东创宇环保科技有限公司,山东... 3月25日,创业与环保(600874)近日发布2020年年报。报告期内,公司实现营业收入336387...
创业必读12篇pdf(有关创业... 每天早起,运动,坚持看书打卡,然后看完第二本书,《精益创业》,想把里面的重点记录下来。这本书的作者是...