内存一致性模型 编辑
内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出和响应。在假定没有流水线的情况下,设系统内共有N个处理器,每个处理器可发出




s

n





{\displaystyle s_{n}}

个内存操作,那么总共有:







!





n
=
1


n
=
N



s

n


!





{\displaystyle {\frac {!}{\prod _{n=1}^{n=N}s_{n}!}}}

种可能的执行顺序。内存一致性模型描述的就是这些操作可能的执行顺序中哪些是正确的。
6
图片 0 图片
评论 0 评论
匿名用户 · [[ show_time(comment.timestamp) ]]
[[ nltobr(comment.content) ]]
相关
二阶段提交是指在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行数据库事务提交时保持内存一致性模型而设计的一种算法。通常,二阶段提交也被称为是一种协议。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点的操作结果并最终指示这些节点是否要把操作结果进行真正的提交。因此,二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。
最终一致性是分布式计算里的一种内存一致性模型,它指对于已改变写的数据的读取,最终都能取得已更新的数据,但不完全保证能立即取得已更新的数据。这种模型通常可以实现较高的高可用性。最终一致性,通过乐观复制,或称延迟复制实现。这种概念最初始于移动应用,后来在各类分布式系统中也有广泛的应用。达到最终一致性的分布式系统被称为副本达到了“收敛”状态。最终一致性是一种较弱的保证。如果某个系统满足更强的一致性约束,它就同时具有最终一致性,但是反过来则未必成立,仅保证最终一致性的系统无法保证更强的约束。
二阶段提交是指在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行数据库事务提交时保持内存一致性模型而设计的一种算法。通常,二阶段提交也被称为是一种协议。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点的操作结果并最终指示这些节点是否要把操作结果进行真正的提交。因此,二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。