14、分布式系统中的一致性与共识算法

分布式系统中的一致性与共识算法

1 问题定义

在分布式系统中,多个进程需要就某个值达成一致,这就是所谓的“共识问题”。共识是许多分布式应用程序的核心需求,例如数据库事务的提交决策。共识问题要求所有无故障的进程必须同意相同的值,并且如果源进程无故障,则所有无故障的进程同意的值必须与源进程的初始值相同。此外,每个无故障的进程最终必须决定一个值。

共识问题的形式化定义如下:

  • 一致性 :所有无故障的进程必须同意相同的值。
  • 有效性 :如果源进程无故障,则所有无故障的进程同意的值必须与源进程的初始值相同。
  • 终止 :每个无故障的进程最终必须决定一个值。

1.1 拜占庭将军问题

拜占庭将军问题是共识问题的一个经典例子。想象四支军队围攻一座城市,每支军队由一位将军指挥。只有当所有军队同时进攻时,才能成功。因此,将军们需要就进攻时间达成一致。通信通过信使进行,但有些将军可能是叛徒,会发送误导性信息。拜占庭将军问题要求在存在叛徒的情况下,忠诚的将军们仍能达成一致。

2 结果概述

共识问题在不同假设下有不同的解决方法。表1总结了在不同故障模型和通信模型下解决共识问题的结果。

故障模型 同步系统 异步系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值