SyMind / learning

路漫漫其修远兮,吾将上下而求索。
9 stars 1 forks source link

内存一致性模型 #50

Open SyMind opened 1 year ago

SyMind commented 1 year ago

内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出image个内存读写操作(读或写),那么总共有:image种可能执行的顺序。内存一致性模型描述的就是这些操作可能的执行顺序中哪些是正确的。

最终一致性(英文:Eventual consistency)是分布式计算里的一种内存一致模型,它指对于已改变写的数据的读取,最终都能取得已更新的数据,但不完全保证能立即取得已更新的数据。这种模型通常可以实现较高的可用性。最终一致性,通过乐观复制(英文:Optimistic replication),或称延迟复制(lazy replication)实现。这种概念最初始于移动应用,后来在各类分布式系统中也有广泛的应用。达到最终一致性的分布式系统被称为副本达到了“收敛(converged)”状态。最终一致性是一种较弱的保证。如果某个系统满足更强的一致性约束(例如线性一致性),它就同时具有最终一致性,但是反过来则未必成立,仅保证最终一致性的系统无法保证更强的约束。

Paxos、Raft 协议是什么?