数据存储的一致性模型是存储系统和数据使用者之间的约定。一致性有不同程度,大致如下:
1. 强一致性:更新完成后,任何后续访问都将返回更新过的值。
2. 弱一致性:系统不保证后续访问将返回更新过的值,在那之前要先满足若干条件。通常条件就是经过一段时间,也就是不一致窗口。
3. 最终一致性:存储系统保证如果对象没有新的更新,最终所有访问都将返回最后更新的值。
最终一致性的各种实体:
1. 因果一致性:如果进程A通知进程B它已更新了一个数据项,那么进程B的后续访问将返回更新后的值,且一次写入将保证取代前一次写入。与进程A无因果关系的进程C的访问遵守一般的最终一致性规则。
2.读己之所写一致性:这是一个重要的模型。当进程A自己更新一个数据项之后,它总是访问到更新过的值,绝不会看到旧值。这是因果一致性模型的一个特例。
3.会话一致性:这是上一个模型的实用版本,它把访问存储系统的进程放到会话的上下文中。只要会话还存在,系统就保证“读己之所写”一致性。如果由于某些失败情形令会话终止,就要建立新的会话,而且系统的保证不会延续到新的会话。
4.单调读一致性:如果进程已经看到过数据对象的某个值,那么任何后续访问都不会返回在那个值之前的值。
5.单调写一致性:系统保证来自同一个进程的写操作顺序执行。要是系统不能保证这种程度的一致性,就非常难以编程了。
关于数据存储的一致性模型就介绍这么多,希望本文的理论知识能对各位在以后的数据库开发道路上有所帮助吧,谢谢各位了!
【编辑推荐】