分布式事务的执行可能会涉及到多个站点上的数据操作,在两阶段提交协议中,当事务Ti的所有读写操作执行结束后,事务Ti的发起者协调器Ci向所有参与Ti的执行站点发送的消息,当收到所有执行站点返回的消息后,Ci再向所有执行站点发送消息。若参与事务Ti执行的某个站

admin2017-09-13  502

问题 分布式事务的执行可能会涉及到多个站点上的数据操作,在两阶段提交协议中,当事务Ti的所有读写操作执行结束后,事务Ti的发起者协调器Ci向所有参与Ti的执行站点发送i>的消息,当收到所有执行站点返回的i>消息后,Ci再向所有执行站点发送i>消息。若参与事务Ti执行的某个站点故障恢复后日志中有i>记录,而没有i>记录,则(    )。

选项 A、事务Ti已完成提交,该站点无须做任何操作
B、事务Ti已完成提交,该站点应做REDO操作
C、事务Ti未完成提交,该站点应做UNDO操作
D、应向协调器询问以决定Ti的最终结果

答案D

解析 本题考查数据挖掘基础知识。
    在两阶段提交协议(Two Phase Commitment Protocol,2PC)中,把分布式事务的某一个代理指定为协调者(Coordinator),所有其他代理称为参与者(Participant)。这里的代理是指完成各个子事务的进程。只有协调者才拥有提交或撤销事务的决定权,而其他参与者各自负责在其本地数据库中执行写操作,并向协调者提出撤销或提交事务的意向。一般一个站点唯一地对应一个子事务,如果某一参与者与协调者在同一站点,虽然它们不需要使用网络来通信,但仍逻辑地认为它与协调者不在同一站点。
    2.PC把事务的提交过程分为两个阶段:
    第一阶段是表决阶段,目的是形成一个共同的决定。开始时,协调者在它的曰志中写入一条开始提交的记录,再给所有参与者发送“准备提交”消息,并进入等待状态。当参与者收到“准备提”消息后,它检查是否能提交本地事务。如果能提交,参与者在日志中写入一条就绪记录,并给协调者发送“建议提交”消息,然后进入就绪状态:否则,参与者写入撤销记录,并给协调者发送“建议撤销”消息。如果某个站点做出“建议撤销”提议,由于撤销决定具有否决权(即单方面撤销),发出“建议撤销”的站点就可以直接忽略这个事务。协调者收到所有参与者的回答后,它就做出是否提交事务的决定。只要有一个参与者建议撤销,协调者就必须从整体上撤销整个分布式事务,因此它写入一条撤销记录,并给所有参与者发送“全局撤销”消息,然后进入撤销状态;否则,它写入提交记录,给所有的参与者发送“全局提交”消息,然后进入提交状态。
    第二阶段是执行阶段,目的是实现这个协调者的决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。此时,协调者在日志中写入一条事务结束记录并终止事务。
    本题中,当事务Ti完成执行时,事务Ti的发起者协调器Ci向所有参与Ti的执行站点发送i>的消息,当收到所有执行站点返回的i>消息后,Ci再向所有执行站点发送i>消息。若参与事务Ti执行的某个站点故障恢复后日志中有i>记录,而没有i>记录,则应向协调器询问以决定Ti的最终结果。
转载请注明原文地址:https://jikaoti.com/ti/UiJ7FFFM
0

最新回复(0)