admin 管理员组文章数量: 887021
一致性
(一)一致性的概念
一致性是通过可见性来定义的。
一致性是指多副本中的数据一致性。
(二)全局排序的概念
尝试对所有进程的读写操作做一次全局排序(全局排序就是排成一列的意思)
- 全局排序中属于同一个进程的读写顺序肯定是不变的
- 进程间的读写顺序按照前一个进程的write操作对之后其他进程是否可见来排序,如果可见则 write(a,4) -> read(a,4), 如果不可见则 read(a,0) -> write(a,4)
全局排序排序了所有进程的读写操作
全局排序是对所有进程的读写操作的排列,关键是排序了所有进程的写操作,所以在顺序一致性模型下,所有进程看到的写操作都是一样的顺序,进程按顺序依次可见每个写操作。
可以反推:只要所有进程看到的写操作都是一样的顺序,那么所有进程的读写操作就能做全局排序。
(三)一致性的分类
一致性分为三种:强一致性,顺序一致性与弱一致性,图例是个典型。
强一致性
强一致性也称线性一致性
强一致性要求进程的写操作对其他线程立即可见
强一致性保障了客户端访问其任何一个节点,都能看到最新某个客户端写入的数据
关键词:立即可见
全局排序: Write(y,2) -> Write(x,4) -> Read(x,4) -> Read(y,2)
顺序一致性
顺序一致性没有严格的立即可见的要求,仅仅要求所有进程看到的写操作都是一样的顺序。
顺序一致性表示客户端访问某个节点,很可能看不到最新写入的数据
顺序一致性 -> 写操作的顺序是一致的
顺序一致性需要回答一个问题,如果写操作不是立即对其他进程可见,那么何时对其他进程可见??
全局排序: Write(y,2) -> Read(x,0) -> Write(x,4) -> Read(y,2)
弱一致性
弱一致性也称最终一致性
弱一致性是无法保证所有进程看到的写操作都是一样的顺序
(四)可见性
进程看到了某个写操作就表明这个写操作对当前进程可见。看到就是可见
本文标签: 一致性
版权声明:本文标题:一致性 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686904390h46340.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论