Consistency = Consensus?
词典会告诉你,Consusens的意思就是“一致”(我想这也许就是中文文献中对“一致性”误用的根源),似乎和Consistency是一样的?答案是否定的。虽然这两个单词的译意接近,但是在分布式系统中作为专业名词来讲,其代表的含义实则相差甚远。
我们常说的“一致性(Consistency)”在分布式系统中指的是副本(Replication)问题中对于同一个数据的多个副本,其对外表现的数据一致性,如线性一致性、因果一致性、最终一致性等,都是用来描述副本问题中的一致性的。
而共识(Consensus)则不同,我认为对Censensus最合适的翻译是共识而非一致,关于共识问题的定义详见参考文献【2】,简单来说,共识问题中所有的节点要最终达成共识,由于最终目标是所有节点都要达成一致,所以根本不存在一致性强弱之分。
【1】被误用的“一致性"