1 单机场景

单台物理机(服务器、主机)中的关系型数据库遵循ACID原则,对应关系如下表:

序号 原则 描述
1 原子性(Atomicity) 事务所有操作要么全部完成,要么全部不完成,一荣俱荣,一损俱损
2 一致性(Consistency) 事务开始或结束时,数据库状态一致(中间状态的数据对外不可见,只有最初状态和最终状态的数据对外可见),保证操作前和操作后数据结构一致,监控数据的中间状态,若有错误,则立即回滚
3 隔离性(Isolation) 多个事务操作,互不干扰,事务锁保证事务的隔离,可能会出现死锁
4 持久性(Durability) 事务完成之后,无法回滚

一致性在前,原子性在后,事务进行时,首先由一致性监控操作过程中数据是否一致,若数据结构发生变化,则进行回滚,这时原子性保证了数据回滚到初始状态。

2 分布式场景

分布式场景,数据分布在多台物理机(服务器、主机)中,数据库遵循CAP原则,对应关系如下表:

序号 原则 描述
1 一致性(Consistency) 数据一致更新,所有机器数据的变动同步进行
2 可用性(Availability) 高可用性,多台物理机集群中部分机器故障,其余部分物理机是否能正常响应客户端读写请求
3 分区容错性(Partition tolerance) 分区为网络分区(如上海和北京的网络区),容错性只多台物理机容忍网络通信故障的能力,多台物理机间通信不能在时限内达成数据一致,说明物理机通讯异常(出现网络分区),必须在C和A之间进行选择

3 CAP放弃原则

序号 放弃 描述
1 C 放弃实时一致性,即数据的一致性时间变长,部分物理机数据先变化,其余物理机一段时间后变化,但最终多台物理机数据是一致的
2 A 放弃高可用,任一单台物理机发生故障,整体物理机集群全部不对外提供数据读写服务
3 P 放弃分区容错性,当网络分区异常时无法保证多台物理机数据的一致

4 CAP选择

序号 方案 数据库 说明
1 CA RDBMS 保证数据强一致性和高可用性,但网络分区故障时,数据服务不可用
2 CP MongoDB、HBase、Redis 保证数据强一致性和网络故障容灾,但,任意物理机故障时,数据不可用
3 AP CouchDB、Cassandra、DynamoDB、Riak 保证数据网络故障可用和物理机故障容灾,但牺牲数据实时一致性

5 BASE

BASE理论是权衡强一致性和高可用的结果,介绍如下表:

序号 属性 描述
1 基本可用(Basically Available) 系统出现了不可预知个故障,但是仍可用,此时响应速度变慢、功能缩水,但可正常工作
2 软状态(Soft State) 允许物理机数据存在中间状态,允许多物理机数据时延
3 最终一致性(Eventually Consistent) 多物理机中的数据一致存在时间间隔,但时延期之后,物理机集群数据完全一致

5 小结

  • 理论上分布式过程中不存在同时满足CAP三个特性的分布式集群;
  • BASE理论对CAP中一致性和可用性的权衡,即使无法做到强一致性,但每个应用可以根据自身业务特点,采用适当的方式使系统达到最终一致性;
  • 不同的场景需要不同的搭配方案,如CA,CP,AP;
  • 对于机器数量庞大,时常出现网络故障,可用性是必要的,因此使用AP,对于数据强一致的场景(如银行、证券)需要权衡CA和CP,当网络故障时,CA原则的数据完全不可用,CP原则部分可用;当机器部分故障时,CA原则数据可用,CP原则的数据完全不可用;

【参考文献】
[1]https://wenku.baidu.com/view/d2ae9c43571252d380eb6294dd88d0d233d43c21.html?from=search
[2]https://www.cnblogs.com/autointerface/p/11959711.html
[3]https://wenku.baidu.com/view/d245c9b6ec630b1c59eef8c75fbfc77da369971b.html?from=search
[4]https://www.cnblogs.com/frank2015/p/9554180.html
[5]http://blog.sina.com.cn/s/blog_53e5177d0102x8k6.html
[6]https://baijiahao.baidu.com/s?id=1634401106583534524&wfr=spider&for=pc

数据库ACID和CAP原则相关推荐

  1. 谈谈对数据库中ACID、CAP、BASE的认识

    2019独角兽企业重金招聘Python工程师标准>>> ACID.CAP.BASE的区别与联系 这得从关系型数据库关系型数据库(RDBMS)和非关系型数据库(NoSQL)说起. RD ...

  2. 【分布式】1、CAP原则(CAP定理)、BASE理论

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  3. CAP原则(CAP定理)

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  4. 关于分布式存储系统中-CAP原则(CAP定理)与BASE理论比较

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  5. 【分布式】CAP原则和BASE理论

    CAP原则概述 C=Consistency=一致性 A=Availability=可用性 P=Partition tolerance=分区容错性 1998年,加州大学的计算机科学家Eric Brewe ...

  6. base cap 分布式_高并发架构系列:详解分布式一致性ACID、CAP、BASE,以及区别

    在面试环节,经常会问CAP.BASE等相关的分布式理论,其实这些名词主要还是来自于分布式的一致性,今天主要介绍分布式一致性:强一致性.最终一致性.ACID.CAP等理论. 分布式一致性的背景 随着分布 ...

  7. CAP 原则与 BASE 理论

    导航 引言 一.CAP 原则 1.1 Consistency 一致性 1.2 Available 可用性 1.3 Partition tolerance 分区容错性 1.4 CAP 的矛盾 1.5 C ...

  8. 数据库中的CAP原理

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

  9. 什么是分布式事务(CAP原则、BASE理论、2PC|3PC协议、XA|AT等模式)

    1.CAP原则 CAP原则是指:一致性©.可用性(A).分区容错性§,分布式系统一般进行三选二,比如: CA:保证一致性和可用性,在单机情况下实现: CP:保证一致性和分区容错性: AP:保证可用性和 ...

最新文章

  1. Varnish Cache 3.0.0安装
  2. 某阿里程序员女朋友吐槽男友整天玩失踪!早晨问候一声,晚上十一点才回信息!中间完全消失!阿里加班真的这么恐怖吗?...
  3. 计算机网络课程复习大纲
  4. java中 instanceof 的用法
  5. java子类怎么编译_java – 无法编译从基类实现抽象方法的子类
  6. Python 超简单一键美化你的文章
  7. Spring Boot前后端分离项目Session问题解决
  8. RunLoop已入门?不来应用一下?
  9. ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
  10. 浏览器根对象window之caches
  11. 【边尝试边写博客】入侵学校服务器
  12. vue3 + crypto-js加密解密(普通版本/TS版本)
  13. ubuntu 键盘delete删除文件失效
  14. jmeter之PerfMon Metrics Collector自定义查看cpu百分比
  15. MATLAB - 旋度可视化
  16. 大数据分析实战之异构数据源联合分析业务创新实践
  17. 网络信号浪涌防雷器的应用
  18. vue项目中gojs最新V2.2.5版本去除水印
  19. 视频学习笔记------系统学习让你轻松定义 Java 类加载器
  20. 链表中入口结点——《剑指offer》

热门文章

  1. Base64工具类(文件、base64字符串、Bitmap相互转换)
  2. 初入深度学习1——如何下载与打开一个Github深度学习库
  3. 如何移除FB的信用卡支付方式?
  4. ximalaya一键音频保存到电脑
  5. java 设置环境变量
  6. 王者荣耀s12服务器维护,王者荣耀S12新增排位保护卡,输了也不用担心掉段了!...
  7. 如何将一个网页文件设置为屏幕保护程序
  8. 基于SSM+Python的仿Panli海外代购平台毕业设计(SSM毕业设计)
  9. 大学计算机模拟考试常见试题与解析
  10. live555源码分析(二):testRTSPClient分析