Consensus Problem 共识问题

系统工程课上教授讲解了Consensus问题,以及两种解决方法。本文主要介绍什么是Consensus,以及在分布式系统异步通信中的问题。

共识问题

Consensus Problem翻译为共识问题,指多个实体在某事上达成一致的过程,具体表现为所有进程决定同一个值。
Consensus is to have several different entities to agree on something.
All processes agree on a common value.

共识的应用诸如:

  • What transactions to commit to a database in which order
  • State machine replication (每个副本执行相同的客户请求集合,并且以等价的顺序处理请求,以保证副本产生相同的输出)
  • Atomic broadcast
  • Leader election
  • Mutual exclusion

与Consistency一致性的区别在于:一致性强调同一个数据的多个副本保持对外呈现状态的一致性。如当修改一个副本的数据时,其他副本如何获取到该修改。包括严格一致性、强一致性(顺序一致性、线性一致性)、弱一致性(最终一致性)等。共识问题强调达成一致性的过程

“一致性描述的是结果状态,共识则是一种手段。达成某种共识并不意味着就保障了一致性(这里的一致性指强一致性)。只能说共识机制,能够实现某种程度上的一致性。”分布式系统的一致性与共识性

继续阅读“Consensus Problem 共识问题”