免费智能真题库 > 历年试卷 > 系统架构设计师 > 2017年下半年 系统架构设计师 上午试卷 综合知识
第12题      
知识点   数据库   两阶段提交协议
关键词   分布式数据库   协议   数据   数据库      分类   数据库系统       

 
分布式数据库两阶段提交协议中的两个阶段是指( )。
 
 
  A.  加锁阶段、解锁阶段
 
  B.  获取阶段、运行阶段
 
  C.  表决阶段、执行阶段
 
  D.  扩展阶段、收缩阶段
 
 
 

  相关试题     数据库系统    更多>  
 
  第46题    2012年下半年  
   48%
在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统..
  第6题    2014年下半年  
   35%
若关系模式R和S分别为:R(A,B,C,D)、S(B,C,E,F),则关系R与S自然联结运算后的属性列有(6)个,与表达方式π1,3,5,6
  第24题    2013年下半年  
   43%
数据挖掘是从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程,主要任务有(24)。
 


   知识点讲解    
   · 数据库    · 两阶段提交协议
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       两阶段提交协议
        两阶段提交协议(Two Phase Commitment Protocol,2PC)既简单又精巧,它把本地原子性提交行为的效果扩展到分布式事务,保证了分布式事务提交的原子性,并在不损坏日志的情况下,实现快速故障恢复,提高分布式数据库系统的可靠性。
        在两阶段提交协议中,把分布式事务的某一个代理指定为协调者(Coordinator),所有其他代理称为参与者(Participant)。这里的代理是指完成各个子事务的进程。只有协调者才拥有提交或撤销事务的决定权,而其他参与者各自负责在其本地数据库中执行写操作,并向协调者提出撤销或提交事务的意向。一般一个站点唯一地对应一个子事务,如果某一参与者与协调者在同一站点,虽然它们不需要使用网络来通信,但仍逻辑地认为它与协调者不在同一站点。下图描述了协调者和参与者的关系。
        
        协调者和参与者的关系图
        2PC保证分布式事务提交的原子性,这是通过在分布式事务的结果生效以前,所有参与执行分布式事务的站点都同意提交而做到这一点的。这种同步的必要性有很多理由,如果某个事务正在读一项由另一个还未提交的事务更新的数据项的值时,相应的参与者就不会同意马上提交该事务。另一种参与者不同意提交的可能的原因是发生了死锁,这要求某一个参与者撤销事务。注意,参与者不需要任何其他进程来通知就可以撤销一个事务,这种能力相当重要,我们称之为单方面撤销。
        2PC把事务的提交过程分为两个阶段:第一阶段是表决阶段,目的是形成一个共同的决定。开始时,协调者在它的日志中写入一条开始提交的记录,再给所有参与者发送“准备提交”消息,并进入等待状态。当参与者收到“准备提交”消息后,它检查是否能提交本地事务。如果能提交,参与者在日志中写入一条就绪记录,并给协调者发送“建议提交”消息,然后进入就绪状态:否则,参与者写入撤销记录,并给协调者发送“建议撤销”消息。如果某个站点做出“建议撤销”提议,由于撤销决定具有否决权(即单方面撤销),发出“建议撤销”的站点就可以直接忽略这个事务。协调者收到所有参与者的回答后,它就做出是否提交事务的决定。只要有一个参与者建议撤销,协调者就必须从整体上撤销整个分布式事务,因此它写入一条撤销记录,并给所有参与者发送“全局撤销”消息,然后进入撤销状态;否则,它写入提交记录,给所有的参与者发送“全局提交”消息,然后进入提交状态。
        第二阶段是执行阶段,目的是实现这个协调者的决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。此时,协调者在日志中写入一条事务结束记录并终止事务。上图描述了两阶段提交协议的参与者和协调者的交互。
        请注意协调者做出事务的全局终止决定的方式,该决定受两条规则的支配,这两条规则称为全局提交规则:
        (1)只要有一个参与者撤销事务,协调者就必须做出全局撤销决定。
        (2)只有所有参与者都同意提交事务,协调者才能做出全局提交决定。
        从下图中可以看出以下关于两阶段提交协议的一些重要之处:
        
        两阶段提交协议活动图
        (1)两阶段提交协议允许参与者可以单方面撤销事务。
        (2)一旦参与者确定了提交或撤销提议,就不能再更改它的提议。
        (3)当参与者处于就绪状态时,根据协调者发出的消息的种类参与者可以转换为提交状态或撤销状态。
        (4)协调者依据全局提交规则做出全局终止决定。
        (5)注意协调者和参与者可能进入某些相互等待对方发送消息的状态。为了确保它们能够从这些状态中退出并终止,要使用定时器。每个代理进程进入一个状态时都要设置超时器。如果所期待的消息在定时器超时之前没有到来,定时器向代理进程报警,进程根据超时协议执行相应动作。


 题号导航      2017年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况 
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
↓第12题