我对“一致性”一词感到困惑。它已被用于许多不同的环境中,即分布式系统,内存模型和数据库。 People/Wikipedia在同一页面中总结了所有不同的一致性模型。但我并不认为他们习惯于描述同样的问题。例如,序列/放松/弱/严格/处理器一致性等在内存模型中是有意义的(由现代架构&现代语言编译器提供)。另一方面,顺序/最终一致性在分布式系统中有意义(当您尝试构建复制状态机时)。像共识算法一样的Paxos/raft可以帮助您构建SC模型,DynamoDB是EC模型的一个示例。不同环境下的一致性(分布式系统vs内存模型vs数据库)
但是,当您构建复制日志以及谈论内存模型中的最终一致性时,谈论发布/弱一致性是没有意义的。
就传统的关系数据库而言,它使我更加困惑。由于在ACID模型中,一致性似乎意味着不同的概念。它只需要在事务之后,数据库应该处于有效/一致的状态。但是,ACID的隔离部分听起来更像一致性模型,特别是顺序一致性模型。
我在这里误解了什么吗?或电脑的人只是喜欢滥用术语和混乱的人...
如果我错了,请纠正我,即使它只是非常小的细节。我真的很想正确理解这些概念。谢谢你:)
不要混淆Dynamo和DynamoDB,前者是EC模型的示例(请参阅“Dynamo:Amazon的高可用性关键值存储”论文),后者是使用类似名称的SC解决方案。 – rystsov
@rystsov感谢您指出 –