数据持久化和一致性

数据库 专栏收录该内容
2 篇文章 0 订阅

数据持久化和一致性

可以预期和符合规则,不一定是一致、准确、最新的,因为不同一致性模型的程度和规则不一样。

一致性判断的视角要从客户端来看,也就是说,存储系统实际存储的数据可以在某些时候不遵从我们所要求的一致性,而只需要保证存储系统的客户端能读取到一致的数据就可以了。举例来说,某一个数据更新的过程中,对于存储系统来说,新数据其实已经写入,但由于事务还未提交,这时客户端读到的还是老数据。

为了服务高可用,就要部署多节点;为了数据高可用,就要存放多个备份。

如数据只有一份,就不存在一致性问题,因为有了数据副本,一致性就成了课题

一致性模型

  • 强一致性:任意时间,读操作总是能取得最近一次写操作写入的数据。注意,这里依然是从存储系统客户端的角度来描述的,即便如强一致性的限制,也只要求在读取的时候能读到“最新”的数据就可以了,至于这个在上次写操作之后、这次读操作之前,对存储系统内部的数据是否是“最新”的并无要求
  • 弱一致性:与强一致性相反,读操作并不能保证可以取得最新一次写操作写入的数据,也就是说,客户端可能读到最新的数据,也可能读不到最新的数据。
  • 最终一致性:介于强一致性和弱一致性。写后立即读,不一定读到最新值,但通过指定的时间窗口能保证读到更新后的值。

数据高可用的架构

1. 简单备份

2. Multi-Master

多个主节点,各自都提供完整的读写服务,数据备份之间的互相拷贝为了不影响读写请求的性能,通过异步进行。

通过互相拷贝实现的一致,所以是最终一致性

缺陷:本地事物可以提交成功,但是全局事务可能失败

3. Master-Slave

存在一个可读可写的Master节点,而存在多个只读的Slave节点,每当有通过Master节点的更新出现,数据以异步方式单向拷贝到所有的Slave节点上。

img

  • 0
    点赞
  • 3
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值