相信所有研究过分布式系统的同学都对大名鼎鼎的FLP不可能性有所耳闻,简单来说,FLP不可能性证明了“在可能有哪怕一个进程故障的异步系统模型中,共识问题无法被解决”。但矛盾的是,现在正当红的很多分布式系统,都依赖于底层的共识算法,比如Multi-Paxos、Raft等,难道是FLP错了么?共识问题已经被解决了?还是说我们用的分布式系统都是有问题的?
想要理解这个问题,其实是要搞清楚一件事情:FLP不可能性真正意味着什么?
注:如无特殊说明,本文中的进程故障模型均为crash-stop,通信链路模型为perfect link。