ROWA协议是强加单副本一致性的协议,它把一个逻辑读变成对任意一个副本的读操作,把一个逻辑写变成对所有副本的写操作,从而让所有副本有同一个值。ROWA协议简单优雅,但有一个致命缺陷:只要有一个副本不能用,更新事务就不能终止。实际上已经提出了这个协议的不少变种,有一个协议称为可用副本协议。因此,协调者在提交前需进行验证。ROWA-A协议比简单ROWA协议更能抗故障,包括网络分割。另一类严格副本控制协议是基于选举的。......
2023-10-28
研究分布式可靠性协议,我们先假设事务的启动节点有一个运作进程,起主导作用,称为协调者(coordinator),其余被分配到操作任务的节点上的进程称为参与者(participant)。协调者和在其他节点的参与者的进程之间相互通信,以帮助事务的正确执行。
分布式数据库系统的可靠性技术主要由协议构成,包括提交(commit)、终止(termination)和恢复(recovery)协议。提交协议和恢复协议在分布式数据库系统和集中式数据库系统中都存在,只是在两个系统中有差别。终止协议是分布式数据库系统中独有的。
假设在分布式事务执行期间,一个节点在执行期间出错,因此希望其他节点也终止事务,这个技术就称为终止协议(termination protocols)。终止协议和恢复协议是恢复问题的两个对立面,出现一个节点故障,终止协议分析操作节点如何处理这个故障,恢复协议处理故障节点上那些进程(协调者和参与者)的恢复过程,使得一旦节点重新启动,就能够恢复它的状态。如果故障是网络分割,终止协议则会采取必要的措施去终止其他分割片上执行的仍然在活跃的事务。而恢复协议则在网络分割片重新互联时保证数据库的相互一致性。(www.chuimin.cn)
提交协议的基本要求是维持分布式事务的原子性,我们称为原子提交(atomic commitment)。我们希望终止协议是非阻塞的(nonblocking)。所谓协议是非阻塞的,指的是它允许事务在其操作节点上终止事务而无需等待其他出现故障的节点恢复,这样可以大大提高事务的响应性能。我们也希望分布式恢复协议是独立的。独立恢复协议可以让节点在出现故障时决定如何去终止一个正在执行的事务,而无须征求其他任何节点的意见。这样协议的存在可以大大减少恢复期间的消息交换。注意,独立恢复协议的存在蕴含了非阻塞终止协议的存在。反之亦然。
有关分布式数据库技术的文章
ROWA协议是强加单副本一致性的协议,它把一个逻辑读变成对任意一个副本的读操作,把一个逻辑写变成对所有副本的写操作,从而让所有副本有同一个值。ROWA协议简单优雅,但有一个致命缺陷:只要有一个副本不能用,更新事务就不能终止。实际上已经提出了这个协议的不少变种,有一个协议称为可用副本协议。因此,协调者在提交前需进行验证。ROWA-A协议比简单ROWA协议更能抗故障,包括网络分割。另一类严格副本控制协议是基于选举的。......
2023-10-28
基于法定人数选举法可以作为一个副本控制方法,也可作为提交方法在网络分割时保证事务的原子性。事务提交前,必须获得提交法定选举人数Vc的通过。后两条规则说明选举的两条规则。在协调者从PRECOMMIT状态移到COMMIT状态和发送″global-commit″命令时,协调者必须获得提交选举人数参与者的同意,这是为了满足规则。图10.193PC协议在选举人方案中的状态转换基于选举人提交算法,有两点是很重要的。......
2023-10-28
如果启动中的节点还不是网络的一部分,则会计算一个尚未指定给其他节点的随机ID编号。最高层的子树由整棵树不包含自己的树的另一半组成;下一层子树由剩下部分不包含自己的一半组成;依此类推,直到分割完整棵树。Kademlia协议确保每个节点知道其各子树的至少一个节点,只要这些子树非空。Kademlia为节点和键使用160比特的ID。例如,令x=010101,y=110001,则这两个节点的距离为100100(二进制),即十进制为32+4=36。......
2023-10-28
下面讨论一个典型的提交协议,即两阶段提交协议。这种模式用到分布式事务管理就是两阶段提交协议。参与方接收到prepare消息后,就会检查自己能否提交。图10.132PC协议时协调者和参与者的状态转换图由图10.13可知:第一,2PC协议允许参与者单边夭折一个事务,直到它决定加入肯定选择前,它都是自由的。图10.14集中式2PC协议的通信结构实现时,2PC协议可以使用许多种不同的通信方式。图10.15线形2PC协议的通信结构协调者发送″prepare″消息给参与者2。......
2023-10-28
三阶段提交协议是为无阻塞协议而设计的。因此有必要对2PC协议进行修改。因为从INITIAL状态到COMMIT状态间有三个状态转换,所以我们称为三阶段提交协议。图10.173PC协议的状态转换图1.终止协议下面分析3PC协议每个状态在超时时的情况。协调者单边决定夭折该事务。因此它将abort记录写入日志,并发送″global-abort″消息给所有已经选择提交事务的参与者。3PC协议如图10.18所示。参与者可能处于INITIAL、READY、ABORT、PRECOMMIT状态。因此协调者将全局提交该事务,发送″global-commit″消息。......
2023-10-28
懒副本协议也是一种变异,它并不试图在更新数据项的事务上下文中涉及的数据项的所有副本上实施写操作,而是将更新实施在一个或几个副本上,随后将改变传递给其他副本。拥有关系参数用于定义更新副本拷贝的许可。基于这四个参数,可以将懒副本协议分为两类。第一类由懒副本协议方法构成,所有副本都是可更新的。这种情况下,副本上存在群组关系。为这种模式实现的公共传播策略是延迟立即。刷新期间所有接收到的刷新事务都要执行。......
2023-10-28
大家熟知的航海记录和飞机的黑匣子记录等都是日志。这里,日志记录应当包含以下几方面。当然,事务在启动、提交或夭折时,需要往日志里写入begin-transaction、commit或abort记录。数据库更新的写操作和相应的日志写操作是两个不同的操作,因此,有可能会在这两个操作执行期间发生故障。为了避免出现这种现象,我们要求先写日志记录再更新数据库,称为log write-ahead协议。该协议有两个基本规则。......
2023-10-28
首批CANopen设备子协议是在1996年发布的,由于设备功能日新月异,这些设备子协议也随之不断地修改完善。它还包含部分CANopen通信子协议,因此其规模可能更加庞大。蓄电池的信息通过标准化CANopen接口进行传输。蓄电池设备子协议定义了有关蓄电池的CANopen接口,充电器设备子协议则描述相应的CANopen接口。......
2023-11-22
相关推荐