大数据基础理论—一致性模型分类

0. 前言

从严格意义上来说,理想情况下的一致性模型只有一种就是强一致性模型,但是在真实世界中强一致性是很难被保证的,很多情况下都是弱一致性。主要是基于CAP理论,大多数互联网应用对于可用性有很高的要求,这样就会适当的降低一致性。

一致性模型主要包括:强一致性、弱一致性、因果一致性、读你所写一致性、会话一致性、单调读一致性以及单调写一致性。

1. 强一致性

对于连接到数据库的所有进程,看到的关于某数据的数据值都是一致的。很好理解,就是对于一个数据不管有多少个副本,在任意时刻对任意一个副本访问得到的结果都是一样的。

2.最终一致性

无法保证某个数值做出更新之后,所有针对该值的后续操作都能够看到新值,而需要一一段时间来保证一致性,在一段时间之后能够保证后续操作看到的都是新值。

3. 因果一致性

因果一致性发生在进程之间有相互依赖关系的情形下。例如AB两个进程相互依赖,那么如果A对某个变量进行更新,他在更新之后会通知B,这时候B看到的就是新值,但是如果还有进程C,那么C看到的值可能还是旧值。

4. 读你所写一致性

其是因果一致性的一个特例,进程A对数据做了更新之后,会立马给自己发送一个通知,所以进程A在之后的操作都是以新值为基础进行的。

5. 会话一致性

当进程A通过会话与数据库进行连接时,在同一个会话中,可以保证读你所写一致性。而在不一致窗口内,如果因为系统故障等原因导致会话终止,那么进程A仍旧可能读出旧值。

6.单调读一致性

如果一个进程读取到数据的某个版本V2的值,那么系统后续的所有读操作都不能看到比V2更老的版本的数值。

7. 单调写一致性

对于某个进程来说,单调写一致性可以保证其多次写操作的序列化。

  • 在实际的系统中要根据具体的情况来选择合适的一致性模型。

你可能感兴趣的:(大数据基础理论)