一致性模型

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

  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
Causal consistency(因果一致性)
如果Process A通知Process B它已经更新了数据,那么Process B的后续读取操作则读取A写入的最新值,而与A没有因果关系的C则可以最终一致性。
Read-your-writes consistency
如果Process A写入了最新的值,那么Process A的后续操作都会读取到最新值。但是其它用户可能要过一会才可以看到。
Session consistency
此种一致性要求客户端和存储系统交互的整个会话阶段保证
Read-your-writes consistency
Hibernate的session提供的一致性保证就属于此种一致性。
Monotonic read consistency
此种一致性要求如果Process A已经读取了对象的某个值,那么后续操作将不会读取到更早的值。
Monotonic write consistency
此种一致性保证系统会序列化执行一个Process中的所有写操作

出处

猜你喜欢

转载自www.cnblogs.com/yuyutianxia/p/9050165.html