什么是一致性
创始人
2025-05-31 16:35:26

文章目录

  • 一、不同的一致性
  • 二、ACID里的一致性
  • 三、多副本一致性
  • 四、CAP理论中的一致性
  • 五、一致性哈希
  • 六、线性一致性、外部一致性、最终一致性的区别

一、不同的一致性

我们在不同的地方见到过一致性的概念,总结大概分为以下几类:

  • ACID里的一致性
  • 多副本的一致性
  • CAP理论的一致性
  • 一致性哈希

二、ACID里的一致性

1.最常见的定义是:事务的一致性是指系统从一个正确的状态,迁移到另一个正确的状态。
指的是事务前后的正确性是一致的。
Consistency ensures that a transaction can only bring the database from one valid state to another, maintaining database invariants: any data written to the database must be valid according to all defined rules, including constraints, cascades,triggers, and any combination thereof. This prevents database corruption by an illegal transaction, but does not guarantee that a transaction is correct.

2.“ensuring the consistency is the responsibility of user, not DBMS.”, "DBMS assumes that consistency holds for each transaction。
指的是对业务中和数据库中约束的检查,业务上的合理性,只靠AID手段不容易检查出逻辑性的问题来。比如转账操作中,账户金额不能为负数,这是业务逻辑上的要求,用一致性来保证。

3.This(Consistency)does not guarantee correctness of the transaction in all ways the application programmer might have wanted (that is the responsibility of application-level code) but merely that any programming errors cannot result in the violation of any defined database constraints.[1]
参考

三、多副本一致性

某些数据保存了多个副本,所有副本内容相同。

四、CAP理论中的一致性

整个分布式系统在对外的反馈上,与一台单机完全一样,不会因为分布式导致对外行为的前后冲突。

五、一致性哈希

一种哈希算法,指将存储节点和数据都映射到一个首尾相连的哈希环上,如果增加或者移除一个节点,仅影响该节点在哈希环上顺时针相邻的后继节点,其它数据也不会受到影响。
在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题。
对比非一致性哈希(普通的哈希),映射时如果节点发生变化,需要重新计算所有数据的映射值。

六、线性一致性、外部一致性、最终一致性的区别

这三个都是分布式系统的一致性级别
线性一致性:强一致性,侧重于单个key的场景
外部一致性:事务在数据库内的执行序列不能违背外部观察到的顺序,更侧重于对比传统数据库系统的内部一致性。
最终一致性:弱一致性。
外部一致性参考

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
重庆属于哪个省份的 重庆在中国... 重庆有多大,大到超出我们的想象,重庆作为我国4个直辖市之一,印象里应该跟京津沪面积差不多,可事实上却...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...