关系数据库/分布式系统一致性模型

一致性是一个比较抽象的概念,涉及computer science的多个领域,例如:html

  1. 分布式数据存储(例如分布式数据库/分布式文件系统/消息队列)的读写一致性
  2. 传统关系数据库事务隔离级别,并发事务的一致性模型
  3. 共享内存的多核架构中,多个cpu core之间的缓存一致性(cache coherence)
  4. Web cache集群的数据一致性

 

 

  • 图右半部分,是关系数据库的consistency model。从上到下,一致性的级别愈来愈低,并发性能会更好些。不一样数据库对于事务隔离级别的定义有所不一样。
    • RR(repeatable read)
    • > CS(cursor scability)
    • > RC( read commit)。
  • 图左半部分,是从分布式系统的consistency model。WFR是write follows read, MR MW分别是monotonic read,monotonic write。
    • Linearizable(线性)
    • > Sequential(顺序)
    • > Causal(因果)
    • > RyW(read your write)。
  • 根据CAP理论,图中红色部分的一致性模型,没法知足100%的可用性,只能达到CP

 

Sequential consistency: Java内存模型 数据库

Causal consistency(因果一致性)apache

若是Process A通知Process B它已经更新了数据,那么Process B的后续读取操做则读取A写入的最新值,而与A没有因果关系的C则能够最终一致性。缓存

Read-your-writes consistencysession

若是Process A写入了最新的值,那么Process A的后续操做都会读取到最新值。可是其它用户可能要过一会才能够看到。架构

Session consistency并发

此种一致性要求客户端和存储系统交互的整个会话阶段保证分布式

Read-your-writes consistency性能

Hibernate的session提供的一致性保证就属于此种一致性。设计

Monotonic read consistency

此种一致性要求若是Process A已经读取了对象的某个值,那么后续操做将不会读取到更早的值。

Monotonic write consistency

此种一致性保证系统会序列化执行一个Process中的全部写操做

 

2、ZooKeeper的保证(Consistency Guarantees

ZooKeeper是一个高效的、可扩展的服务,read和write操做都被设计为快速的,read比write操做更快。

一、顺序一致性(Sequential Consistency):从一个客户端来的更新请求会被顺序执行。

二、原子性(Atomicity):更新要么成功要么失败,没有部分红功的状况。

三、惟一的系统镜像(Single System Image):不管客户端链接到哪一个Server,看到系统镜像是一致的。

四、可靠性(Reliability):更新一旦有效,持续有效,直到被覆盖。

五、时间线(Timeliness):保证在必定的时间内各个客户端看到的系统信息是一致的。

 

 

出处
相关文章
相关标签/搜索