美文网首页
【转载】分布式系统核心问题--FLP不可能原理

【转载】分布式系统核心问题--FLP不可能原理

作者: SeanC52111 | 来源:发表于2018-11-05 19:49 被阅读0次

FLP不可能原理

FLP不可能原理: 在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法(No completely asynchronous consensus protocol can tolerate even a single unannounced process death)。提出并证明该定理的论文《Impossibility of Distributed Consensus with One Faulty Process》由Fischer、Lynch和Patterson三位科学家于1985年发表,该论文后来获得了Dijkstra(就是发明最短路径算法的那位计算机科学家)奖。 FLP不可能原理实际上告诉人们,不要浪费时间,去为异步分布式系统设计在任意场景下都能实现共识的算法 。

要正确理解FLP不可能原理,首先要弄清楚“异步”的含义。
在分布式系统中,同步和异步这两个术语存在特殊的含义。同步 是指系统中的各个节点的时钟误差存在上限;并且消息传递必须在一定时间内完成,否则认为失败;同时各个节点完成处理消息的时间是一定的。对于同步系统,可以很容易地判断消息是否丢失。
异步 是指系统中各个节点可能存在较大的时钟差异,同时消息传输时间是任意长的,各节点对消息进行处理的时间也可能是任意长的,这就造成无法判断某个消息迟迟没有被响应是哪里出了问题(节点故障还是传输故障?)。不幸地是,现实生活中的系统往往都是异步系统。

FLP不可能性在原始论文中以图论的形式进行了严格证明。要理解这一基本原理并不复杂,一个不严谨的例子如下。
三个人在不同房间进行投票(投票结果是0或者1)。彼此可以通过电话进行沟通,但经常有人会时不时睡着。比如某个时候,A投票0,B投票1,C收到了两人的投票,然后C睡着了。此时,A和B将永远无法在有限时间内获知最终的结果,究竟是C没有应答还是应答的时间过长。如果可以重新投票,则类似情形可以在每次取得结果前发生,这将导致共识过程永远无法完成。

FLP原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。即便对于非拜占庭错误的前提下,包括Paxos、Raft等算法也都存在无法达成共识的情况,只是在工程实践中这种情况出现的概率很小。

那么,FLP不可能原理是否意味着研究共识算法压根没有意义?
先别这么悲观。学术界做研究,往往考虑地是数学和物理意义上最极端的情形,很多时候现实生活要美好得多(感谢这个世界如此鲁棒!)。例如,上面例子中描述的最坏情形,每次都发生的概率其实并没有那么大。工程实现上多尝试几次,很大可能就成功了。

科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行 。这就是科学和工程不同的魅力。
那么,退一步讲,在付出一些代价的情况下,我们在共识的达成上,能做到多好?回答这一问题的是另一个很出名的原理:CAP原理。

相关文章

  • 【转载】分布式系统核心问题--FLP不可能原理

    FLP不可能原理 FLP不可能原理: 在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个...

  • 共识机制

    共识机制 原理 FLP不可能原理 FLP 不可能原理:在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统...

  • FLP定理与热力学第二定律的等价性

    FLP 不可能原理 FLP 不可能原理:在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一...

  • 区块链灵魂:共识算法

    4.1.2两个原理:FLP与CAP 1.FLP定理:在网络可靠、存在节点失效的最小化异步模型系统中,不存在一个可以...

  • 【转载】分布式系统原理

    作者:狼-志链接:http://www.cnblogs.com/gowhy/archive/2012/12/28/...

  • JAVA架构师之路-区块链技术中分布式系统主要核心问题

    区块链技术中分布式系统主要核心问题 分布式系统,随着摩尔定律碰到瓶颈,越来越多的系统要依靠分布式集群架构来实现海量...

  • CAP理论

    引用自《从Paxos到Zookeeper分布式一致性原理与实践》 CAP 理论告诉我们,一个分布式系统不可能通是满...

  • 『学概念找员外』FLP 不可能原理

    「力场 lichang.io」公链挖矿第一社区! 比特币是全球性的,在整个世界存在多个时区,每个时区之间都存在时间...

  • 云计算及分布式系统

    期末论文: 分布式系统的核心问题:1,一致性问题在分布式系统中,一致性(Consistency,早期也叫 Agre...

  • dubbo

    一、基础知识 1、分布式基础理论 1.1)、什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干...

网友评论

      本文标题:【转载】分布式系统核心问题--FLP不可能原理

      本文链接:https://www.haomeiwen.com/subject/xikexqtx.html