数据⼀致性模型有哪些?
强⼀致性:
当更新操作完成之后,
任何多个后续进程的访问都会返回最新的更新过的值
,这种是对
⽤户最友好的,
就是⽤户上⼀次写什么,下⼀次就保证能读到什么
。根据 CAP理论,这种实现需
要牺牲可⽤性。
弱⼀致性:
系统在数据写⼊成功之后,不承诺立即可以读到最新写⼊的值,也不会具体的承诺多久
之后可以读到。⽤户读到某⼀操作对系统数据的更新需要⼀段时间,我们称这段时间为“不⼀致性
窗⼝”。
最终⼀致性:
最终⼀致性是弱⼀致性的特例,强调的是
所有的数据副本,在经过⼀段时间的同步之
后, 最终都能够达到⼀个⼀致的状态
。
因此,最终⼀致性的本质是需要系统保证最终数据能够达到⼀致,而不需要实时保证系统数据的强⼀致性。到达最终⼀致性的时间 ,就是不⼀致窗⼝时间,在没有故障发⽣的前提下,不⼀致窗⼝的时间主要受通信延迟,系统负载和复制副本的个数影响。
最终⼀致性模型根据其提供的不同保证可以划分为更多的模型,包括因果⼀致性和会话⼀致性等。