事务的“一致性”和分布式“一致性”完全不是同一个概念

本文探讨了分布式系统中的CAP一致性和数据库事务的ACID一致性的区别。CAP保证了分布式系统中数据的一致性,而ACID确保事务执行时不破坏数据库完整性。在分布式事务中,两者有交集,但通常需要区分开来理解,以避免理论和实践中的混淆。推荐相关书籍帮助深入理解这些概念。
摘要由CSDN通过智能技术生成

在前面的文章中,我们已经讲了:分布式系统中所说的一致性(CAP一致性)和数据库事务中所说的一致性(ACID一致性)完全不是同一个概念。

CAP一致性是说:用户在分布式系统的某个节点上进行了变更操作,则在一定时间后,用户能从系统的任意节点上读取到这个变更结果。

ACID一致性是说:事务的执行不会破坏数据库的完整性约束,所谓的完整性约束包括数据关系的完整性和业务逻辑的完整性。因此,这里的“一致性”指的是完整性约束不会破坏。

哪有人会问,两者之间有没有什么关联呢?

如果真要找,也能找到。只发生在一些很特殊的场景下。

我们已经知道ACID一致性讨论的是事务,CAP一致性讨论的是分布式。那在分布式事务中,这两种一致性会存在交集。如图所示。
分布式事务示意图

假设存在一个支持事务操作的分布式数据库。

那作为数据库,它应该满足CAP一致性,否则数据库中的值没有意义。例如你从数据库的某个节点中读取到变量的值为1,而从数据库的另一个节点中读取到同一变量的值为3,则无法判断哪一个值是正确的。这样无论值1还是值3都没有意义。

又因为这个分布式数据库支持事务,则它应该满足ACID一致性。

这时候我们发现,CAP一致性是ACID一致性的基础。即如果CAP一致性不成立,则分布式数据库各个节点的数据不一致且没有意义,那么ACID一致性要求的完整性约束便断然无法满足。

除了上图所示的情况外,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师易哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值