从用户观点看,Web上集成多数据库系统是用户能够从异构数据库中有效地检索更有用的数据,也让数据库管理员和相关组织能更有效地管理它们的数据。XML维护了SGML验证、结构和扩展的特征。在这个方法里,异构数据库模式都借助于XML显式描述,并给出转换规则。XML处理器从系统服务器存放的XML结果文件里检索数据。......
2023-10-28
许多研究人员建议将选举作为一种技术来管理并发数据的存取。基本思想是,如果大多数节点选择执行一个事务,则执行这个事务。这是多数选举的思想。
多数选举的思想现在已经推广到法定人数选举法。换言之,取代多数原则,可以将之改变为法定人数原则。例如,现实生活中,规定达到3人的法定人数就可以提交提案。这里的法定人数是3。基于法定人数选举法可以作为一个副本控制方法,也可作为提交方法在网络分割时保证事务的原子性。在非副本数据库中,这就涉及选举原则和提交协议的集成。
假设给系统中的每个节点指定一个选举(权)Vi,令总的选举权数为V,夭折和提交的法定人数分别为Va和Vc,且必须服从如下提交规则。
(1)Va+Vc≤V,其中0≤Va、Vc≤V。
(2)事务提交前,必须获得提交法定选举人数Vc的通过。
(3)事务夭折前,必须获得夭折法定选举人数Va的通过。
第一条规则保证一个事务不能同时既提交又夭折。后两条规则说明选举的两条规则。
将这三条规则进行修改后集成到3PC协议里。在协调者从PRECOMMIT状态移到COMMIT状态和发送″global-commit″命令时,协调者必须获得提交选举人数参与者的同意,这是为了满足规则。注意,规则无须显式实现,因为在WAIT或READY状态的事务已经准备夭折事务,所以夭折选举人数已经存在。
网络发生分割时,每个分割中的节点选择一个新协调者,这与3PC终止协议的故障处理类似。基本差别是,不能从WAIT或READY状态转换成ABORT状态。首先,一个或一个以上的协调者试图终止这个事务。我们不希望按照不同的方式终止,或者让事务的执行不保持一致性。因此,我们希望协调者能够显式获得夭折选举人的支持。其次,如果新选举的协调者出现故障,协调堵塞不知道达到了提交或夭折选举人数,这样,必须要求参与者做出显式决策是加入还是夭折选举人,而且从此不后悔。遗憾的是,READY(或WAIT)状态不满足这些需求。这样就在READY和ABORT状态间引入了另外一个状态,PREABORT。从PREABORT状态到ABORT状态的转换要求达到夭折的法定选举人数。
修改后,终止协议工作如下。一旦选出新协调者,新协调者请求所有参与者报告自己的本地状态。根据响应,按如下方式终止事务。
(1)至少有一个参与者处于COMMIT状态,协调者决定提交事务,发送″global-commit″消息给所有参与者。(www.chuimin.cn)
(2)至少有一个参与者处于ABORT状态,协调者决定夭折事务,发送″global-abort″消息给所有参与者。
(3)如果在PRECOMMIT状态,有选举权的参与者达到了提交选举人数,那么协调者决定提交该事务,向所有参与者发送″global-commit″消息。
(4)如果在PREABORT状态,有选举权的参与者达到了夭折选举人数,那么协调者决定夭折该事务,向所有参与者发送″global-abort″消息。
(5)如果第(3)种情况不成立,但是在PRECOMMIT和READY状态有选举权的参与者的选举人数达到了提交选举人数,那么协调者将参与者通过发送″prepare-to-commit″消息转入PRECOMMIT状态。协调者等待第(3)种情况成立。
(6)类似地,如果第(4)种情况不成立,但是在PREABORT和READY状态有选举权的参与者的选举人数达到了夭折选举人数,那么协调者将参与者通过发送″prepare-to-abort″消息转入PREABORT状态。协调者等待第(4)种情况成立。
3PC协议在选举人方案中的状态转换如图10.19所示。
图10.19 3PC协议在选举人方案中的状态转换
基于选举人提交算法,有两点是很重要的。首先,它是阻塞的。分割中的协调者如果由于消息丢失或者发生多分割不能形成夭折或提交选举人数。其次是该算法足以处理节点故障以及网络分割。
当两个分割归并时,新的更大分割的节点可以简单地执行终止协议,即协调者把参与者选举结论收集起来,终止该事务。
有关分布式数据库技术的文章
从用户观点看,Web上集成多数据库系统是用户能够从异构数据库中有效地检索更有用的数据,也让数据库管理员和相关组织能更有效地管理它们的数据。XML维护了SGML验证、结构和扩展的特征。在这个方法里,异构数据库模式都借助于XML显式描述,并给出转换规则。XML处理器从系统服务器存放的XML结果文件里检索数据。......
2023-10-28
ROWA协议是强加单副本一致性的协议,它把一个逻辑读变成对任意一个副本的读操作,把一个逻辑写变成对所有副本的写操作,从而让所有副本有同一个值。ROWA协议简单优雅,但有一个致命缺陷:只要有一个副本不能用,更新事务就不能终止。实际上已经提出了这个协议的不少变种,有一个协议称为可用副本协议。因此,协调者在提交前需进行验证。ROWA-A协议比简单ROWA协议更能抗故障,包括网络分割。另一类严格副本控制协议是基于选举的。......
2023-10-28
无论是哪种类型的资源受限项目调度问题,都需要将调度方案转化为有效的调度计划以便安排活动任务。调度计划是满足一系列优先级限制和资源限制的前提下制定的连续方法,主要有并行调度产生方案和串行调度产生方案两种。对于小规模和强资源限制的项目,并行调度计算结果优于串行调度,而大规模和适当资源限制的项目更适合串行调度方案。图3.5广义优先关系串行调度产生方案的目标流程初始化值及参数。......
2023-10-05
如果启动中的节点还不是网络的一部分,则会计算一个尚未指定给其他节点的随机ID编号。最高层的子树由整棵树不包含自己的树的另一半组成;下一层子树由剩下部分不包含自己的一半组成;依此类推,直到分割完整棵树。Kademlia协议确保每个节点知道其各子树的至少一个节点,只要这些子树非空。Kademlia为节点和键使用160比特的ID。例如,令x=010101,y=110001,则这两个节点的距离为100100(二进制),即十进制为32+4=36。......
2023-10-28
与Napster一样,Gnutella也是一个音乐共享系统,但其实现方式有所不同。Gnutella是一个纯无中心P2P系统,主要功能是文件共享。Gnutella系统具有如下特点。一方面,每个查询会广播到尽可能多的节点,Gnutella有能力得到所有潜在结果。......
2023-10-28
分布式数据库系统的可靠性技术主要由协议构成,包括提交、终止和恢复协议。终止协议是分布式数据库系统中独有的。如果故障是网络分割,终止协议则会采取必要的措施去终止其他分割片上执行的仍然在活跃的事务。我们也希望分布式恢复协议是独立的。这样协议的存在可以大大减少恢复期间的消息交换。......
2023-10-28
关于如何利用中间件集成多数据库,下面举一个使用CORBA集成的例子。参考文献[1]中提出的基于CORBA的多数据库系统体系结构,称为CBMA。CBMA是典型的多数据库系统体系结构,加入CBMA的数据库仍具有自治性,其上原来的应用程序仍能继续运行。MOTM由CORBA的ORB、多数据库系统事务管理器、负载平衡和安全管理等功能模块组成,其中多数据库系统事务管理器、负载平衡和安全管理都是作为ORB的软构件实现的。......
2023-10-28
下面讨论一个典型的提交协议,即两阶段提交协议。这种模式用到分布式事务管理就是两阶段提交协议。参与方接收到prepare消息后,就会检查自己能否提交。图10.132PC协议时协调者和参与者的状态转换图由图10.13可知:第一,2PC协议允许参与者单边夭折一个事务,直到它决定加入肯定选择前,它都是自由的。图10.14集中式2PC协议的通信结构实现时,2PC协议可以使用许多种不同的通信方式。图10.15线形2PC协议的通信结构协调者发送″prepare″消息给参与者2。......
2023-10-28
相关推荐