分布式数据库CAP原理

  • CAP简介
  • CAP理论
  • CAP总结

CAP简介

  • 传统的关系型数据库事务具备ACID
    (1)A :原子性
    (2)C :一致性
    (3)I :独立性
    (4)D :持久性
  • 分布式数据库的CAP:
    (1)C(Consistency):强一致性
    “all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。
    (2)A(Availability):高可用性
    可用性指“Reads and writes always succeed”,即服务一直可用,而且要是正常的响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。
    (3)P(Partition tolerance):分区容错性
    即分布式系统在遇到某节点或网络分区故障时,仍然能够对外提供满足一致性或可用性的服务。分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。

CAP理论

  • CAP理论提出就是针对分布式数据库环境的,所以,P这个属性必须容忍它的存在,而且是必须具备的。
  • 因为P是必须的,那么我们需要选择的就是A和C
  • 大家知道,在分布式环境下,为了保证系统可用性,通常都采取了复制的方式,避免一个节点损坏,导致系统不可用。那么就出现了每个节点上的数据出现了很多个副本的情况,而数据从一个节点复制到另外的节点时需要时间和要求网络畅通的,所以,当P发生时,也就是无法向某个节点复制数据时,这时候你有两个选择:
    (1)选择可用性 A,此时,那个失去联系的节点依然可以向系统提供服务,不过它的数据就不能保证是同步的了(失去了C属性)。
    (2)选择一致性C,为了保证数据库的一致性,我们必须等待失去联系的节点恢复过来,在这个过程中,那个节点是不允许对外提供服务的,这时候系统处于不可用状态(失去了A属性)。
  • 最常见的例子是读写分离,某个节点负责写入数据,然后将数据同步到其它节点,其它节点提供读取的服务,当两个节点出现通信问题时,你就面临着选择A(继续提供服务,但是数据不保证准确),C(用户处于等待状态,一直等到数据同步完成)。

CAP总结

  • 分区是常态,不可避免,三者不可共存
  • 可用性和一致性是一对冤家
    一致性高,可用性低
    一致性低,可用性高
  • 因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
    (1)CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
    (2)CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
    (3)AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

分布式数据库CAP原理相关推荐

  1. redis学习-分布式数据库CAP原理

    传统的ACID分别是什么 A (Atomicity) 原子性 C (Consistency) 一致性 I (Isolation) 独立性 D (Durability) 持久性 关系型数据库遵循ACID ...

  2. 分布式数据库CAP理论

    传统数据库与NoSQL数据库 传统的关系型数据库在功能支持上通常很宽泛,从简单的键值查询,到复杂的多表联合查询再到事务机制的支持.而与之不同的是,NoSQL系统通常注重性能和扩展性,而非事务机制(事务 ...

  3. 分布式基础--CAP原理

    上图是CAP原理图,看到之后,不禁引入下面几个问题,让我们一一带着问题去了解CAP. 1.什么是CAP? 2.什么是分区? 3.为什么只有3选2? 4.可用的抉择? 1. 什么是 CAP 定理 CAP ...

  4. 「数据库系列四」分布式数据库CAP理论与最终一致性

    传统关系型数据库中事务有四个重要的特性,简称ACID,即 原子性 : 事务是一个不可分割的工作单位,事务中的操作要么都成功,如果有一个执行失败,所有的SQL将都被撤销,恢复到事务开始的状态 一致性 : ...

  5. 分布式数据库CAP原理和Base

    l 传统ACID有: Ø A(Atomicity)原子性 Ø C(Consistency)一致性 Ø I(Isolation)独立性 Ø D(Durability)持久性 l CAP:不可能同时满足, ...

  6. 分布式数据库中CAP原理CAP+BASE

    一.传统的ACID 分别是什么 1.A: atomicity 原子性 2.C: Consistency 一致性 3.I: Isolation 独立性 4.D: Duraility 持久性 二.CAP ...

  7. 从分布式数据库的CAP特性说起

    在传统RDBM系统中,对于事务处理必须保证为一个完整的逻辑处理过程,具备ACID四个特性,A Atonomy 事务处理的原子性,要么成功,要么失败 ,C Consistency 一致性,数据库必须保持 ...

  8. 分布式数据库数据一致性的原理、与技术实现方案

    http://youzhixueyuan.com/the-principle-and-technology-realization-of-distributed-data-consistency.ht ...

  9. 数据库中的CAP原理

    去年在参加盒子科技秋招笔试题中遇到过,印象深刻,一直想要查资料总结下来. 这个理论是由美国著名科学家,同时也是著名互联网企业Inktomi的创始人Eric Brewer在2000年PODC(Sympo ...

最新文章

  1. 国外优秀开源PHP建站程序一览
  2. promise ajax 队列,ES6中的promise,从使用promise封装ajax说起
  3. sklearn机器学习常用过程总结
  4. centos7远程桌面端口_CentOS7启用远程桌面连接
  5. 华为成功完成中国联通NFV三层解耦测试验证
  6. 韩忠康 5天玩转mysql_玩转MySQL数据库5天就够了(2)
  7. linux修改ip配置文件路径,Centos7系统如何修改IP地址
  8. 使用Log Parase 结合 Log Parase Studio 查询IIS日志
  9. 7-15 sdut-数据类型-4 第七次全国人口普查数据分析
  10. win7如何调整计算机c盘,Win7系统增加C盘空间的方法
  11. 获取服务器的视频文件夹,视频从云服务器获取视频文件夹
  12. 秦皇岛科学选育新品种 国稻种芯·中国水稻节:河北谱丰收曲
  13. 顺序表倒置java_倒置顺序表
  14. 使用 Amazon Amplify快速创建简单的 Android 应用程序
  15. 少儿编程课程体系需求
  16. 建网站选择网络诚信专属.xin域名,诚信赢天下!
  17. 一道传统特色小吃让她萌生创业想法,一天能挣800元
  18. NOJ[1587] 一群不学好的NBUT ACMers竟然作死要去爬山?晚上还困在山上回不去2333而且竟然只有一个手电筒,(名字那么长)不是作死是什么
  19. 快速学习-Saturn FAQ
  20. Python 基础 — Python 简介

热门文章

  1. Java8 lambda表达式,Comparator.comparing().thenComparing()报错
  2. 输出这个整数对应的拼音
  3. 【React学习】React中ref的用法
  4. UGUI sprite editor九宫切图用法
  5. PAT 甲级 A1010 Radix (25 分)
  6. linux系统宝塔安装nodejs,node安装,nodejs安装,Windows nodejs安装,Linux nodejs安装
  7. 关于自动布局(Autolayout)
  8. 02 BGP地址聚合
  9. IPv4子网划分与聚合
  10. 回溯算法--LeetCode-78 子集、LeetCode-90 子集Ⅱ