前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ACID、CAP、BASE理论

ACID、CAP、BASE理论

作者头像
小诸葛
发布2020-10-10 17:23:00
7010
发布2020-10-10 17:23:00
举报
文章被收录于专栏:方法论方法论

ACID

描述:ACID是传统关系型数据库系统中事务的四个特性,分别是原子性(Atomicity)、一致性(consistency)、隔离性(Isolation)、持久性(durability)。

1、原子性(Atomicity)

事务通常由多个语句组成。原子性保证了每一个事务都被当做一个独立的单元,这个单元要么全部成功,要么全部失败。如果事务的任何一个语句没有执行成功,那么整个事务都将失败,数据库中的数据也就不会发生改变。一个原子系统必须保证每一个情况下的原子性,这些情况包括断电、出错以及崩溃等。原子性的保证避免了对于数据库中数据的更新只有部分完成,因为那样可能导致比拒绝全部操作更严重的问题。因此,另一个数据库客户机无法观察到事务正在进行。在某一个时刻,事务还未发生,下一刻可能就整个完成了(也可能事务被取消了,最终什么都没有发生)。

有这样一个关于原子事务的例子:一笔从银行的A账户转账到B账户的交易。它由两个操作组成,从A账户扣款然后保存到B账户,以原子事务执行这笔交易保证了数据库中数据一致的状态,也就是说,任何一个事务失败了,钱都不会减少或者增加。

2、一致性(consistency)

一致性保证了事务只能将数据库从一个有效状态带到另一个有效状态,保护数据库的不变式:所有写到数据库的数据必须遵循所有已定义的规则,包括约束、级联回滚、触发器,以及它们的自由组合。这可以保护数据库不被非法的事务损坏,但是事务的正确性是不能保证的。引用完整性保证了主键和外键的关联。

3、隔离性(Isolation)

事务通常是并发执行的(例如:多个事务同时对一个表进行读和写)。隔离性可确保并发执行的事务与按顺序执行的事务最终使数据库处于相同的状态。隔离性是并发控制的主要目标,根据方法的使用,某个不完整事务对其他事务的影响可能是不可见的。

4、持久性(durability)

持久性保证了一旦事务成功提交了,那么提交就是永久有效的,即使出现了系统失败的情况(例如断电、出错、崩溃等)。这通常意味着已完成的事务会被永久记录(不像内存,断电数据就没了)。

CAP

描述:CAP是分布式系统中的三个特性,分别是一致性(Consistency)、可用性(Avaliability)、分区容错性(Partition tolerance),在分布式系统中,系统最多只能同时满足这三个特性中的两个。

分布式系统是同时在多个节点(物理机或虚拟机)存储数据的网络。因为所有的云应用都是分布式系统,理解CAP定理对于设计云应用是必要的,因为通过这个理论你可以选择一个最适合你的应用数据管理系统。

CAP定理也被叫做布鲁尔定理,因为这个理论是 布鲁尔(Eric A. Brewer)教授在2000年关于分布式计算的一次演讲中提出来的,两年后,麻省理工学院(MIT)教授赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了对“布鲁尔猜想”的证明。

下面我们来详细了解下分布式系统中的CAP定理具体是什么。

1、一致性(Consistency)

一致性是指不管客户端连接的是哪个节点,这些客户端同时看到的数据都是相同的。为了实现这个目标,每当数据被写入到一个节点,该节点必须将数据成功转发或复制到其他节点,才能被认为写入成功。

2、可用性(Avaliability)

可用性是指任意一个客户端发起的数据请求都要得到一个响应,即使一个或多个节点宕机了。换一种说法就是,分布式系统中的工作节点对于任意一个请求都要返回一个有效响应,没有例外。

3、分区容错性(Partition tolerance)

分区是指分布式系统中的两个节点通信中断,即两个节点之间的网络丢失或者暂时延迟。分区容错性是指尽管系统中的节点之间存在任意数量的通信中断,但集群必须正常工作。

BASE

描述:BASE定理是对CAP定理的一个延伸,BASE是指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventually Consistent),为了实现分布式系统的高可用,允许某些时候数据出现短暂的不一致,但在一段时间后,系统会实现最终一致。CAP追求的是数据的一致性,而BASE关注的是系统的可用性。

1、基本可用(Basically Available)

基本可用是指分布式系统出现故障时,允许损失部分可用性,例如抢火车票时有时会出现“当前访问用户过多,请稍后重试”,而不是没有任何响应一直等待,这样损失了部分可用性,但并不是完全不可用——至少给出了反馈。

2、软状态(Soft State)

允许系统中的数据存在中间状态,即在一定期限内,允许不同节点的数据不一致。

3、最终一致性(Eventually Consistent)

系统不能一直处于中间状态,在一定期限后,不同节点的数据要实现数据一致性,从而达到数据的最终一致性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小诸葛的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ACID
  • CAP
  • BASE
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档