在分布式数据库中,一致性模型定义了数据如何在不同节点之间共享和保持同步。主要的一致性模型类型包括强一致性、最终一致性、因果一致性和顺序一致性。每种模型都有其自己的规则和保障,关于更新如何被应用和被系统不同部分感知,这会影响开发者如何设计应用来处理数据。
强一致性确保任何读操作都会返回给定数据项的最新写入。这意味着一旦写入被确认,所有后续的读取都会看到该写入,无论访问的是哪个节点。这个模型对于银行系统等场景至关重要,因为准确且最新的数据是必须的。提供强一致性的分布式数据库的一个例子是 Google Spanner;它使用两阶段提交协议确保所有事务以一致的顺序被应用。
另一方面,最终一致性允许数据同步存在一些延迟,这意味着在一个节点上进行的更新可能不会立即反映在其他节点上。然而,该模型保证如果没有新的更新被进行,最终所有节点将收敛到相同的值。这种方法对社交媒体平台等应用是有利的,因为在这些情况下即时一致性不如可用性重要。Amazon DynamoDB 是一个采用最终一致性的知名例子,它能够在容忍数据的临时差异的同时提供高可用性和性能。