前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式一致性认识

分布式一致性认识

作者头像
heidsoft
发布2023-03-18 17:09:53
3140
发布2023-03-18 17:09:53
举报
文章被收录于专栏:云计算与大数据

由于分布式系统存在异常,分布式存储系统设计时往往会将数据冗余存储多份,每一份存储称为一个副本(replica/copy)。

当某个节点出现故障时,可以从其他副本上读到数据。副本是分布式存储系统容错技术的手段。

正是由于副本的存在,如何保证副本之间的一致性是整个分布式系统的理论核心。

从两个角度理解一致性:

  1. 用户角度/客户端角度, 客户端读写操作十分符合某种特性
  2. 存储系统角度,存储系统的多个副本之间是否一致,更新的顺序是否相同

相关场景:

  1. 存储系统:存储系统可以理解为一个黑盒子,为上层业务提供可用性和持久性
  2. 客户端A:客户端A主要实现从存储系统write和read操作
  3. 客户端B和客户端C: 客户端B和客户端C是独立于A,并且B和C也相互独立的,他们同时也实现对存储系统的write和read操作。

从客户端看,一致性包括三种情况:

  1. 强一致性:假设A先写入一个值到存储系统,存储系统保证后续A,B,C的读取操作都将返回最新值。如果写入操作“超时”,那么成功或者失败都是可能的,客户端A不应该做任何假设
  2. 弱一致性:假设A先写入了一个值到存储系统,存储系统不能保证后续A,B,C的读取操作是否能够读取到最新值。
  3. 最终一致性:最终一致性是弱一致性的一种特例。假如A首先写入一个值到存储系统,存储系统保证如果后续没有写操作更新同样的值,A,B,C的读取操作“最终”都会读取到A写入的最新值。“最终”一致性有一个“不一致窗口”的概念。他特指从A写入值,到后续A,B,C读取到最新值的这段时间。“不一致窗口”的大小依赖于几个因素:交互延迟,系统的负载,以及复制协议要求同步的副本数。

最终一致性常见的变体有:

  1. 读写(read - write)一致性: 如果客户端A写入了最新的值,那么A的后续操作都会读取到最新的值。但是其他用户(比如B或C)可能要过一会儿才能看到。
  2. 回话一致性:要求客户端和存储交互的整个会话期间保证读写一致性。如果原有会话因为某种原因失效而创建了新的会话,原有会话和新会话之间的操作不能保证读写一致性。
  3. 单调读一致性:如果客户端A已经读取了对象的某个值,那么后续操作将不会读取到更早的值。
  4. 调调写一致性:客户端A的写操作按顺序完成,这就意味着,对于同一个客户端的操作,存储系统的多个副本需要按照与客户端相同的顺序完成。

从存储系统看,一致性包括:

  1. 副本一致性: 在存储系统的多个副本之间的数据是否一致,不一致的时间窗口等。
  2. 更新顺序一致性:存储系统的多个副本之间是否按照相同的顺序执行更新操作。

分布式存储评价指标

  1. 系统的吞吐能力以及系统的响应时间
  2. 系统的吞吐能力指系统在某一段时间可以处理的请求总数,通常用每秒处理的读操作数(QPS, Query Per Second)或者写操作数(TPS, Transaction Per Second)来衡量
  3. 系统的响应延迟,指某个请求从发出到接收到返回结果消耗的时间。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云数智圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档