Atomic broadcast(原子广播)

在容错分布式计算中,原子广播(atomic broadcast)或总顺序广播(total order broadcast)是一种广播,其中多个进程的系统中的所有正确进程都以相同的顺序接收相同的消息集;也就是说,消息顺序相同。广播被称为“原子广播”,因为其要么最终在所有的参与者正确完成,要么所有的参与者都终止而没有副作用。原子广播是重要的分布式计算原语。

原子广播协议通常需要以下属性:

  1. 有效性:如果正确的参与者广播了一条消息,那么所有正确的参与者最终都会收到该消息。
  2. 统一协议:如果一个正确的参与者收到一条消息,那么所有正确的参与者最终都会收到该消息。
  3. 统一完整性:每位参与者最多只能接收一次消息,并且前提是该消息以前是广播的。
  4. 统一的总顺序:消息在数学意义上是完全有序的;也就是说,如果有任何正确的参与者首先收到消息1,然后才收到消息2,则所有其他正确的参与者必须在消息2之前收到消息1。

容错:

如果可以假设计算机不会失败,那么为原子广播设计算法相对容易。例如,如果没有故障,则可以简单地通过使所有参与者与确定消息顺序的一个“领导者”进行通信来实现原子广播,而其他参与者则跟随该领导者。

但是,真正的计算机是有故障的。它们会失败,并在无法预测的(可能是不适当的)时间从失败中恢复。例如,在跟随领导者算法中,如果领导者在错误的时间失败,该怎么办?在这样的环境中,实现原子广播是困难的。在有关网络,故障模型,对多播的硬件支持的可用性等各种假设下,已经提出了许多用于执行原子广播的协议

在容忍崩溃的系统中,相当于共识:

为了满足原子广播的条件,参与者必须有效地“同意”消息的接收顺序。在其他参与者“同意”订单并开始接收消息之后,从失败中恢复的参与者必须能够学习并遵守约定的顺序。这些考虑表明,在发生崩溃故障的系统中,原子广播和共识是等效的问题。

值可以由过程以原子广播的方式提出以达成共识,并且过程可以通过选择原子接收的第一条消息的值来确定值。因此,共识可以简化为原子广播。
相反,一组参与者可以通过就有关要接收的第一个消息达成共识,然后就下一条消息达成共识,依次类推,直到所有消息都已被接收,从而自动广播消息。因此,原子广播减少到共识。

算法

Chandra-Toueg algorithm是基于共识的溶液到原子广播。[1]
Zookeeper原子广播(ZAB)协议是Apache ZooKeeper的基本构建模块,Apache ZooKeeper是一种容错的分布式协调服务,它是Hadoop和许多其他重要的分布式系统的基础。[2] [3]

[1] 钱德拉(Tushar
Deepak);Toueg,Sam(1996)。“用于可靠的分布式系统的不可靠的故障检测器”。ACM杂志。43(2):225-267。doi:10.1145
/ 226643.226647。 [2] Flavio P. Junqueira,本杰明C.里德和Marco
Serafini,雅虎!研究(2011)。“ Zab:用于主备份系统的高性能广播”。2011年IEEE /
IFIP第41届可靠系统和网络国际会议(DSN)。第245–256页。doi:10.1109 / DSN.2011.5958223。书号
978-1-4244-9233-6。S2CID 206611670。 [3] AndréMedeiros(2012年3月20日)。“
ZooKeeper的原子广播协议:理论与实践”(PDF)。赫尔辛基工业大学-理论计算机科学实验室。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ZooKeeper的事务执行过程涉及客户端与集群之间的交互和广播,以及如何保证事务的原子性和一致性。下面是大致的执行过程: 1. 客户端向ZooKeeper发送一个事务请求。事务请求可以包括创建、删除、更新节点等操作。 2. 当客户端的请求到达ZooKeeper集群时,请求会被分发给一个Leader节点。 3. Leader节点接收到请求后,将请求转发给Follower节点,并等待Follower节点的确认。 4. Follower节点接收到请求后,执行相应的操作,并将结果返回给Leader节点。 5. Leader节点收集到大多数Follower节点的确认后,会将结果广播给所有节点,并等待节点的确认。 6. 一旦大多数节点都确认了事务的执行结果,Leader节点会向客户端发送成功响应。 通过以上过程,ZooKeeper保证了事务的原子性和一致性: - 原子性:ZooKeeper通过使用ZAB(ZooKeeper Atomic Broadcast)协议来保证事务的原子性。该协议要求在事务执行前要求多数节点确认,只有多数节点都确认后,事务才能被提交。 - 一致性:ZooKeeper通过使用ZAB协议和多数节点确认的机制来保证事务的一致性。只有大多数节点都确认了事务的执行结果,才会向客户端发送成功响应,保证了在分布式环境下的一致性。 需要注意的是,ZooKeeper并不能保证强一致性。在网络分区等异常情况下,ZooKeeper可能会出现不一致的情况,但当网络恢复正常后,ZooKeeper会尽力将数据恢复到一致状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值