内部一致性与相互一致性关系总结

本文探讨分布式系统中数据副本的一致性问题,包括内部一致性(ACID的C)和相互一致性(CAP的C)。内部一致性关注数据库内部数据项的关系不变,而相互一致性要求所有副本值相同。并发控制确保每个节点的内部一致性,但面对冲突更新,保持相互一致性需要所有节点做出相同判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

  • 【1】Thomas R H. A majority consensus approach to concurrency control for multiple copy databases[J]. ACM Transactions on Database Systems (TODS), 1979, 4(2): 180-209.

在分布式系统中,一个数据有多个副本,由于存在节点间通讯的延迟,当进行一个更新操作时,不可能保证所有副本所有时间都一样,或多或少都会有不相同的的时间差。

一个更新操作要保证副本之间的 相互一致性 和每个副本的 内部一致性 。下面就来介绍这两种一致性的联系。

举例

这个例子用来后边的讨论。

数据库中有两个节点A和B,分别存储3个数据x,y,z,值都为1。

  • A:x=1,y=1,z=1
  • B:x=1,y=1,z=1
  • 内部约束:x+y+z=3

现在有两个更新操作:

  • update1:x=-1, y=3
  • update2:y=-1, z=3

内部一致性(ACID中的C)

ACID中的C。

内部一致性是一种应用程序指定的不变性。这种一致性关心一个数据库内不同数据项之间的关系不变。保证内部一致性不仅依赖应用程序而且依赖存储系统。【1】【2】关于内部一致性的定义大家的观点比较相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值