【分布式系统】Ch 7 一致性和复制 (Consistency & Replication)
文章目录
前言
为了实现分布式存储系统的高可靠和高可用性,数据在系统中一般存储多个副本以实现自动容错。
分布式存储系统通过复制协议将数据同步到多个存储节点,并要做到保持多个副本之间的数据一致性。
因此,复制和一致性两个概念紧密相关。将重点介绍两种一致性模型,分别是以数据为中心和以用户为中心的一致性模型。
一、介绍
1.数据复制
1)复制的目的:提高分布式系统的可靠性、性能。
- 高可靠性的体现:一个副本失效后,可以转换到另一个副本继续运行;通过多个副本可以对数据提供更好的保护。
- 性能的体现:利用不同地理位置的副本迅速响应;利用不同的副本分担工作负荷。
2)复制的难点:保持各个副本间的一致性。
3)复制的代价:复制带来的多个拷贝可能导致一致性方面的问题。为了让多个拷贝间保持一致性,需要进行数据同步 ,因此需要付出代价。
2. 一致性模型
1)一致性问题: 更为具体地讲,我们是在讨论共享数据的读操作和写操作时讨论一致性问题。这里用广义的术语来讲,共享数据是通过分布式数据存储实现的。
- 一致性模型:一致性模型实际上是进程和数据存储之间的一个约定。若进程统一准守某些规则,那么数据存储将正常运行。
二、以数据为中心的一致性模型
·不引入同步变量的方式
1. 严格一致性 (Strictly Consistency)
要求:对所有进程来说,所有写操作结果都是瞬息可见的。
其意味着,1)系统维持着对一个绝对的全局时间顺序。2)显然,这对分布式系统来讲是不可能的。后面将用时间间隔来代替绝对时间以对一致性要求放宽。
图a符合严格一致性,图b则不符合。