首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一致性和事务性隔离是否意味着相同?

一致性和事务性隔离是否意味着相同?
EN

Software Engineering用户
提问于 2021-02-06 18:28:44
回答 2查看 122关注 0票数 4

关于一致性和一致性,https://en.wikipedia.org/wiki/Consistency_模型

一致性处理维护一个全局顺序,所有处理器都可以看到写入a的单个位置或单变量。一致性处理对所有处理器的multiple位置的操作排序。

这让我想起了数据库系统中的ACID与一致性(来自设计数据密集型应用程序)之间的隔离:

隔离大多数数据库同时由多个客户端访问。如果它们正在读取和写入数据库的不同部分,这是没有问题的,但是如果它们访问the相同的数据库记录,则可能会遇到并发问题(争用条件)。从ACID的意义上说,隔离意味着并发执行的事务彼此隔离:它们不能踩到对方的脚尖。经典的数据库教科书将隔离形式化为可序列化,这意味着每个事务都可以假装它是在整个数据库上运行的唯一事务。数据库确保当事务提交时,结果与它们已连续运行(一个接一个)相同,尽管实际上它们可能是并发运行的。Consistency保证了distributed一致性模型和事务isolation级别的层次结构之间存在一些相似之处,我们在前面讨论了4,5。但是,虽然有一些重叠,但它们大多是独立的:transaction隔离主要是为了避免由于并发执行事务而产生的争用条件,而distributed一致性主要是关于在遇到延迟和故障时协调副本的状态。

这是正确的

  • 这两位讨论了一致性的相同含义?
  • 第一个是连贯,第二个是孤立意味着同样的意思?

谢谢。

EN

回答 2

Software Engineering用户

发布于 2021-02-07 12:07:53

我不认为他们是亲戚。孤立的重点是防止不想要的互动,而连贯性则几乎相反:在一起有意义,共同创造更大的意义。

因此,如果您想看到隔离和其他东西之间的相似之处,我会说,您会更接近于完整性或同步之类的东西。

票数 1
EN

Software Engineering用户

发布于 2021-07-11 15:06:14

ACID的一致性主要是为了保持参照的完整性。

记住,酸是很差的。可序列化是非常无用的。它定义了系统需要以某种顺序执行事务的行为。因此,事务不需要保留任何实时顺序。即使是单个“进程”发出的事务顺序也不需要保留。因此,下面的系统是SERIALIZABLE:

代码语言:javascript
运行
复制
thread1: tx1:start
thread1: tx1:A=1
thread1: tx1:commit
thread1: tx2:start
thread1: tx2:r=A
thread1: tx2:commit

然后允许事务tx2在tx1之前倾斜。因此,线程不需要观察由早期事务执行的写操作。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/421952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档