时间:2023-08-21|浏览:164
DB的分布式存储系统设计时会将数据冗余存储多份,每一份称为一个副本。这样,在某个节点出现故障时,可以从其他副本上读取数据。副本是分布式存储系统容错技术的重要手段。由于存在多个副本,确保副本之间的一致性成为整个分布式系统的核心问题。
为了让DB的用户更好地理解DB的分布式存储系统,我们引出了一致性模型,并简单介绍几种常见的一致性模型。
A、线性一致性:也称为强一致性,可以理解为只有一个单核处理器或只有一个数据副本,并且所有操作都是原子的。
B、顺序一致性:顺序一致性要求不同处理器对变量的写操作必须在所有处理器上以相同的顺序看到。
C、因果一致性:因果一致性是弱于顺序一致性的一致性模型,只需要满足有因果关系的操作是顺序一致性即可。
D、最终一致性:除了强一致性,其他一致性模型都可以看作最终一致性。最终一致性只要求在某个时间点一致即可。
E、可用性:可用性指服务一直可用,而且是正常响应时间。一个可用性的分布式系统要求每个非故障节点都能对每个请求作出响应。
F、分布式系统的一致性:根据CAP理论,一个分布式系统最多只能同时满足一致性、可用性和分区容错性这三项中的两项。
需要特别指出的是CAP中的一致性是指所有节点同时看到相同的数据,也就是线性一致性。DB的分布式存储一致性必须从客户端和服务端两个维度看待。从客户端角度,多进程并发访问时要求更新的数据能被后续的访问都能看到,即强一致性。从服务端角度,尽快将更新的数据分布到整个系统,降低达到最终一致性的时间窗口,对提高系统的可用性和用户体验非常重要。
热点:区块链