简单说一说数据存储的一致性

数据库
本文主要介绍了数据存储的一致性模型的一些知识,包括一致性的程度和最终一致性的各种实体等,希望能对您有所帮助。

数据存储一致性模型是存储系统和数据使用者之间的约定。一致性有不同程度,大致如下:

1. 强一致性:更新完成后,任何后续访问都将返回更新过的值。

2. 弱一致性:系统不保证后续访问将返回更新过的值,在那之前要先满足若干条件。通常条件就是经过一段时间,也就是不一致窗口。

3. 最终一致性:存储系统保证如果对象没有新的更新,最终所有访问都将返回最后更新的值。

最终一致性的各种实体:

1. 因果一致性:如果进程A通知进程B它已更新了一个数据项,那么进程B的后续访问将返回更新后的值,且一次写入将保证取代前一次写入。与进程A无因果关系的进程C的访问遵守一般的最终一致性规则。

2.读己之所写一致性:这是一个重要的模型。当进程A自己更新一个数据项之后,它总是访问到更新过的值,绝不会看到旧值。这是因果一致性模型的一个特例。

3.会话一致性:这是上一个模型的实用版本,它把访问存储系统的进程放到会话的上下文中。只要会话还存在,系统就保证“读己之所写”一致性。如果由于某些失败情形令会话终止,就要建立新的会话,而且系统的保证不会延续到新的会话。

4.单调读一致性:如果进程已经看到过数据对象的某个值,那么任何后续访问都不会返回在那个值之前的值。

5.单调写一致性:系统保证来自同一个进程的写操作顺序执行。要是系统不能保证这种程度的一致性,就非常难以编程了。

关于数据存储的一致性模型就介绍这么多,希望本文的理论知识能对各位在以后的数据库开发道路上有所帮助吧,谢谢各位了!

【编辑推荐】

  1. Java和Ibatis调用存储过程并取得返回值详解
  2. Oracle和Sybase根据系统的pid查询sql语句的例子
  3. Oracle数据库一些不常见但很重要的使用技巧总结篇
  4. Oracle数据库Guid作主键时执行速度超慢的原因在哪里
  5. ASP连接Oracle错误:800a0e7a未找到提供程序的解决
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2011-07-26 09:04:44

MySQL Repli数据库负载均衡

2017-07-25 14:38:56

数据库一致性非锁定读一致性锁定读

2021-06-27 21:10:12

Linux 进程控制

2022-12-14 08:23:30

2024-02-27 00:10:06

语言Javascript

2021-07-26 06:33:42

CRDT数据CAP

2022-04-01 16:55:22

数据库缓存日志

2021-07-31 22:20:00

线程池系统参数

2021-02-05 08:00:48

哈希算法​机器

2020-10-30 10:38:50

Python开发语法

2021-02-02 12:40:50

哈希算法数据

2019-08-30 12:46:10

并发扣款查询SQL

2021-02-04 06:30:26

Python编程语言

2022-01-29 22:00:37

可用性存储系统

2022-04-06 15:19:32

数据库MySQL一致性

2021-12-05 21:06:27

软件

2021-04-24 16:58:03

数据库工具技术

2017-06-27 09:40:28

MYSQL数据备份

2021-03-04 06:49:53

RocketMQ事务

2020-05-12 10:43:22

Redis缓存数据库
点赞
收藏

51CTO技术栈公众号