首页 > 技术相关 > 存储一致性总结

存储一致性总结

2011年5月6日 sigma 发表评论 阅读评论

严格一致性其实从物理定律上来说就是不能实现的(它要求写操作能够瞬间传播出去)。

顺序一致性是可行的,在编程人员中很流行且广泛应用。但是它的性能很差。解决这个问题的方法是放宽一致性的模型。下表以限制程度递减的顺序给出了几种可能的模型。

一致性 说明
严格 所有的共享访问事件都有绝对时间顺序
顺序 所有进程都以相同的顺序检测到所有的共享访问事件
因果 所有进程都以相同的顺序检测到所有因果联系的事件
处理器 PRAM一致性+存储相关性
PRAM 所有的进程按照预定的顺序检测到来自一个处理器的写操作,来自其他处理器的写操作不必以相同的顺序出现

另一措施是引入了明确的同步变量,正如弱一致性释放一致性入口一致性所做的那样。下表总结了这三种模式。当进程对普通共享数据变量执行操作时,不能保证它们何时对于其他进程是可见的。只有当访问同步变量后,变化才能传播出去。

一致性 说明
同步完成后,共享数据才可能保持一致
释放 当离开临界区时,共享数据就保持一致
入口 当进入临界区时,和该临界区相关的共享数据保持一致

这三种模型的不同在于其同步机制如何工作。但在这三种情况中,它们都可在一个临界区中执行多重的读写操作,而不引起数据传输。当临界区的操作完成后,最后结果或者广播发送给其他进程或准备就绪在其他进程需要时再发送出去。

本文作者: Sigma    在新浪微博关注SigmaSigmaWeibo    RSS订阅本博客
本文链接: http://www.sigma.me/2011/05/06/memory-consistency-summary.html
本博客采用知识共享署名—非商业性-禁止演绎使用3.0协议进行许可,转载请保留作者和原文链接。

  1. 2011年5月12日07:01 | #1

    写的不错,很受用!

  2. 2011年5月11日01:56 | #2

    LZ备案拍照了么?

  3. 2011年5月9日03:23 | #4

    多线程编程?

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量