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