传统关系型数据库事务acid
原子性、一致性、隔离性、持久性
1、A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
例如库存,多少个并发,库存最终量不能错。
例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。
3、I (Isolation) 独立性/隔离性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
--------------------- 本文来自 纳尔逊皮卡丘 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/zhaobig/article/details/78630843?utm_source=copy
分布式数据库cap
NOSQL数据模型和CAP原理
http://blog.sina.com.cn/s/blog_7800d9210100t33v.html
1. 一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;
2. 可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。
3. 分区容忍性(Partition Tolerance): 在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个要求,最多只能同时较好的满足其中的两个。
互联网项目,P是必须满足的,
C和A,通常选择A
即PA
而传统企业级项目,能会是PC
传统的关系型数据库在功能支持上通常很宽泛,从简单的键值查询,到复杂的多表联合查询再到事务机制的支持。而与之不同的是,NoSQL系统通常注重性能和扩展性,而非事务机制(事务就是强一致性的体现)。
CAP的证明很简单,假设两个节点集{G1, G2},由于网络分片导致G1和G2之间所有的通讯都断开了,如果在G1中写,在G2中读刚写的数据, G2中返回的值不可能G1中的写值。由于A的要求,G2一定要返回这次读请求,由于P的存在,导致C一定是不可满足的。
放弃P:如果想避免分区容错性问题的发生,一种做法是将所有的数据(与事务相关的)都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重的影响系统的扩展性。
放弃A:使用网络分区,等数据一致后再去取数据,因此在等待期间系统无法对外提供服务,失去可用性。
放弃C:这里所说的放弃一致性,并不是完全放弃数据一致性,而是放弃数据的强一致性,而保留数据的最终一致性。以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。
因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:
- CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强。
- CP-满足一致性,分区容错的系统,通常可用性不是特别高
- AP-满足可用性,分区容错性的系统,通常可能对一致性要求低。
根据CAP理论,在分布式存储系统中最多只能实现上面的两点,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
- CA:传统Oracle、mysql数据库
- AP:Tokyo Cabinet、SimpleDB、couchDB、Riak
-
CP:redis、mongodb
BASE理论
BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。接下来看一下BASE中的三要素:
1、基本可用
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性----注意,这绝不等价于系统不可用。比如:
(1)响应时间上的损失。正常情况下,一个在线搜索引擎需要在0.5秒之内返回给用户相应的查询结果,但由于出现故障,查询结果的响应时间增加了1~2秒
(2)系统功能上的损失:正常情况下,在一个电子商务网站上进行购物的时候,消费者几乎能够顺利完成每一笔订单,但是在一些节日大促购物高峰的时候,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面
2、软状态
软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时
3、最终一致性
最终一致性强调的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。
总的来说,BASE理论面向的是大型高可用可扩展的分布式系统,和传统的事物ACID特性是相反的,它完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。但同时,在实际的分布式场景中,不同业务单元和组件对数据一致性的要求是不同的,因此在具体的分布式系统架构设计过程中,ACID特性和BASE理论往往又会结合在一起。
相关推荐
本文将详细探讨`php.acp`和`html.acp`文件以及它们在EditPlus中的作用。 `php.acp`和`html.acp`是EditPlus中的自动补全配置文件,它们为用户提供了一种快速输入代码的方式。自动补全功能允许程序员在输入代码时,...
`*.acp`文件是EditPlus中的代码自动补全配置文件,用于扩展其内置的代码提示功能。在本文中,我们将详细探讨如何利用这些`.acp`文件提高开发效率。 1. **什么是`.acp`文件?** `.acp`文件是EditPlus中的自定义代码...
阿里云ACP.pdf
同时,EditPlus也提供了方便的内置工具,如代码模板管理和用户词典,与`xcss.acp`文件相结合,可以构建出一套强大的CSS编写环境。 总之,`xcss.acp`文件是EditPlus提升CSS编写效率的重要工具。通过利用这个文件,...
阿里云云计算ACP复习资料,知识点
PMI-ACPhandbook 中文版,详细介绍了PMI-ACP认证相关知识
Tiny SOT23-6, 2A, 1MHz LED Driver DC/DC erter designed to drive LED arrays....current allows ACP2727 to be used in different 7' to 10' LCD panel backlights (3*13 LED arrays typically).
标题中的"acp.rar_ACP"表明这是一个与ACP(可能是“自动分类程序”或某种特定算法的缩写)相关的RAR压缩文件。描述提到这是一个用MATLAB编写的程序,用于实现ACP算法。MATLAB是一种强大的数学计算环境,常用于科学...
云计算ACP.
常见的注入技术包括SQL注入、XSS(跨站脚本)注入等,但"ACP注入"可能是开发者自定义的一种特定类型的注入方法,可能与特定的框架或平台有关。 源码分析可以提供以下几方面的知识: 1. **编程语言**:首先,我们...
刚刚考过PMI体系下的ACP,备考ACP敏捷认证必备资料,共享给小伙伴们
ACP认证笔记.doc认证学习笔记
因此,定期更新php.acp以保持与最新PHP版本的兼容性是非常重要的。此外,EditPlus还支持用户自定义的自动完成列表,用户可以创建自己的.acp文件来包含项目特有的函数或类,这样在团队开发中可以提高协作效率。 总的...
在本文中,我们研究了男性精索静脉曲张样本中ACP1基因型与吸烟与不孕症之间的关系。 研究了126例精索静脉曲张患者。 通过DNA分析确定ACP1基因型,并通过SPSS软件进行统计分析。 通常,低活性* A / * B基因型对不育...
支持批量权限申请,不需要重写 onRequestPermissionsResult 方法,Activity 与 Fragment 中用法一致,一句话搞定。 处理权限拒绝,或勾选不再询问,导致不能正常使用功能的提示框,支持跳转设置权限界面开启权限,...
ACP练习题,我就是全部五套题循环做,同时多看书,记住基础概念,最终得到ACP7A的成绩,希望些资料对大家有帮助。
acp 好帮手
ACP考纲-中文版,有需要ACP考试的同学可以获取参考,包括敏捷原则等内容。
对特斯拉公司电机技术的前身,ACP-150进行产品规格书介绍。The Power Electronics Unit (PEU) houses the propulsion power inverter, the battery recharge electronics and power line filters,motor controls, ...
acp_commander.jar升级版功能相同