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


    一致性是一个比较抽象的概念,涉及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

    Sequential consistency: Java内存模型 

    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中的所有写操作

    二、ZooKeeper的保证(Consistency Guarantees

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

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

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

    3、唯一的系统镜像(Single System Image):无论客户端连接到哪个Server,看到系统镜像是一致的。

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

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

    出处
  • 相关阅读:
    html中的背景图片不能充满整个浏览器 .
    linux系统安装Memcache
    linux下如何查看某软件是否已安装
    Redis监控之redisstat安装与详解
    memcached出现:Fatal error: Call to undefined method Memcached::connect()
    PHP多进程开发与Redis结合实践
    关于大型asp.net应用系统的架构架构的选择(转载)
    浅谈https\ssl\数字证书
    利用Lucene.net对附件做搜索(转载)
    Mic's blog iis下ISAPI_Rewrite配置及 iis rewrite 规则书写
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/9050165.html
Copyright © 2020-2023  润新知