关于一致性和一致性,https://en.wikipedia.org/wiki/Consistency_模型说
一致性处理维护一个全局顺序,所有处理器都可以看到写入a的单个位置或单变量。一致性处理对所有处理器的multiple位置的操作排序。
这让我想起了数据库系统中的ACID与一致性(来自设计数据密集型应用程序)之间的隔离:
隔离大多数数据库同时由多个客户端访问。如果它们正在读取和写入数据库的不同部分,这是没有问题的,但是如果它们访问the相同的数据库记录,则可能会遇到并发问题(争用条件)。从ACID的意义上说,隔离意味着并发执行的事务彼此隔离:它们不能踩到对方的脚尖。经典的数据库教科书将隔离形式化为可序列化,这意味着每个事务都可以假装它是在整个数据库上运行的唯一事务。数据库确保当事务提交时,结果与它们已连续运行(一个接一个)相同,尽管实际上它们可能是并发运行的。Consistency保证了在distributed一致性模型和事务isolation级别的层次结构之间存在一些相似之处,我们在前面讨论了4,5。但是,虽然有一些重叠,但它们大多是独立的:transaction隔离主要是为了避免由于并发执行事务而产生的争用条件,而distributed一致性主要是关于在遇到延迟和故障时协调副本的状态。
这是正确的
谢谢。
发布于 2021-02-07 12:07:53
我不认为他们是亲戚。孤立的重点是防止不想要的互动,而连贯性则几乎相反:在一起有意义,共同创造更大的意义。
因此,如果您想看到隔离和其他东西之间的相似之处,我会说,您会更接近于完整性或同步之类的东西。
发布于 2021-07-11 15:06:14
ACID的一致性主要是为了保持参照的完整性。
记住,酸是很差的。可序列化是非常无用的。它定义了系统需要以某种顺序执行事务的行为。因此,事务不需要保留任何实时顺序。即使是单个“进程”发出的事务顺序也不需要保留。因此,下面的系统是SERIALIZABLE:
thread1: tx1:start
thread1: tx1:A=1
thread1: tx1:commit
thread1: tx2:start
thread1: tx2:r=A
thread1: tx2:commit然后允许事务tx2在tx1之前倾斜。因此,线程不需要观察由早期事务执行的写操作。
https://softwareengineering.stackexchange.com/questions/421952
复制相似问题