分布式系统中一些主要的副本更新策略。

1、同时更新

  • 类型A:没有任何协议,可能出现多个节点执行顺序交叉导致数据不一致情况。

  • 类型B:通过一致性协议唯一确定不同更新操作的执行顺序,从而保证数据一致性

2、主从式更新

多个副本之间存在一个主副本(Master Replica),其他副本为从副本,这种称为主从更新策略。所有对数据的更新首先提交到主副本,再由主副本通知从副本进行数据更新。如果同时产生多个数据更新操作,由主副本决定不同更新操作的顺序。

类型A:同步方式

主副本等待所有从副本更新完成之后才确认更新操作完成,这样确保数据的强一致性,但是会存在较大的请求延时,尤其是在多副本跨数据中心的情形下,因为请求延时取决于最慢的那个副本的更新速度。

类型B:异步方式

主副本在通知从副本更新之前即可确认更新操作。假设主副本还没有通知任何其他从副本就发生崩溃,那么数据一致性可能会出现问题,一般首先在另外的可靠存储位置将这次更新操作记录下来,以防这种情况发生。

  • 1)所有读请求都通过主副本来响应,任意一个副本接收到读请求后转发为主副本,可以保证强一致,但是本来可以由距离近的副本响应的操作又得转发给距离较远的主副本,增加了请求延时,Google的Chubby采用这种方式

  • 2)任意一个副本都可以响应读请求,请求延时大大降低,但是可能导致读不一致,因为有些副本可能还存在旧版本的数据,Zookeeper就是采用这种方法获得低延时,但牺牲了一致性

类型C:混合方式

同步混合异步,主副本首先同步更新部分从副本,然后确认更新操作完成,其他副本通关异步方式获得更新,Kafka就是采用这种混合方式来维护数据副本的不一致性

  • 1)读操作至少要从一个同步更新的节点读出,类似RWN协议的R+W>N,可保证强一致性,但是请求延时加大

  • 2)读操作不要求一定从至少一个同步更新节点读出,那么会出现类型B的第2种不一致性情形。

3、任意节点更新

不区分主从副本,任意节点都可以接收请求,然后又它去通知其他副本进行更新。

类型A:同步通知其他副本

存在和主从更新的类型A的情况,除此之外,为了识别出是否存在不同客户端向不同副本发送对同一数据的更新操作,还需要额外付出更多的请求延时

类型B:异步通知其他副本

存在主从更新的B方式问题。

Dynamo/Cassandra/Riak同时采取了主从式更新的类型C(同步+异步),以及任意节点更新的策略

转载于:https://www.cnblogs.com/bonelee/p/6247776.html

分布式系统中一些主要的副本更新策略——Dynamo/Cassandra/Riak同时采取了主从式更新的同步+异步类型,以及任意节点更新的策略。...相关推荐

  1. 分布式系统中的领导选举

    领导选举是分布式系统中最棘手的事情之一.同时,理解 Leader 是如何选举产生的以及leader的职责,是理解分布式系统的关键. 在分布式系统中, 通常一个服务由多个节点或实例组成服务集群, 提供可 ...

  2. 一致性哈希算法及其在分布式系统中的应用

    摘要 本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用.首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个 ...

  3. 一致性哈希算法原理及其在分布式系统中的应用

    本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用.首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如 ...

  4. 大型分布式系统中的缓存架构

    作者:陈彩华 来自:51cto技术栈(ID:blog51cto) 本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景. 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: ...

  5. 分布式系统中的一致性协议

    本文详细介绍目前分布式系统中常见的一些一致性协议:两阶段提交协议,三阶段提交协议,向量时钟,RWN协议,paxos协议,Raft协议.下面就一个个详细讲解下. 一. 两阶段提交协议(2PC) 两阶段提 ...

  6. 快速掌握:大型分布式系统中的缓存架构

    关注我们获得更多内容 " 本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景. 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: 缓存的分类 CDN 缓存 CD ...

  7. 分布式系统中的一致性模型

    文章目录 什么是一致性模型? 强一致性模型 线性一致性(Linearizable Consistency) 顺序一致性(Sequential Consistency) 弱一致性模型 因果一致性(Cau ...

  8. 谈谈分布式系统中的复制

    谈谈分布式系统中的复制 数据极客  2016-04-01 23:16 复制几乎是构成分布式系统,尤其是分布式存储和分布式数据库的关键所在,那么本文就来综合谈论下复制技术. 简单说复制本身可以分为同步复 ...

  9. 分布式系统中节点之间的同步形成区块链

    链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载. 分布式系统中节点之间的同步形成区块链 分布式系统由Tanenbaum定义,"分布式系统是一组独立的计算 ...

最新文章

  1. matlab数据接口技术,实战MATLAB之文件与数据接口技术
  2. Spring Cloud 使用 FeignClient 启动报错
  3. 超图桌面版使用模板创建数据源
  4. http协议状态码和web错误解决总结
  5. ffmpeg支持G711音频和H.264视频数据封装为mp4
  6. c#中 uint--byte[]--char[]--string相互转换汇总
  7. 筛选列_Excel办公实操,两大办公技能,复杂数据进行筛选,一看就会
  8. 数组有没有length()这个方法? String有没有length()这个方法?
  9. 16进制颜色码对照表
  10. c语言编写英雄联盟,怎么用C#或者C语言注册 英雄联盟 热键
  11. 2022用户画像构建
  12. 【BZOJ4453】cys就是要拿英魂! 后缀数组+单调栈+set
  13. zblog php mip,ZBlogPhp模版-极简百度MIP自适应主题
  14. CDOJ1059-秋实大哥与小朋友
  15. python 条形图填充疏密_python matplotlib模块: fill_between(填充曲线)
  16. MATLAB 数据处理(二)非线性拟合——洛伦兹拟合(Lorentz fit)
  17. 链接库问题:LD_LIBRARY_PATH(找不到共享库)
  18. CSCD+北大核心《计算机工程与应用》期刊投稿经验,2022年10月最新
  19. Redis分布式锁的原理、作用及实现(简单易懂)
  20. BoCloud博云完成近亿元B轮融资,向PaaS及自动化运维注入强大加速力

热门文章

  1. 网络编程学习笔记--1.socket可读可写条件
  2. mysql存储过程输入参数拆分_mysql 存储过程字符分割
  3. python标准库导入语句有哪些_如何将python标准库缺失的进行导入?
  4. spacy库的安装与使用_Python 安装、使用第三方库的一些经验
  5. mysql 时间戳 三天_MySQL格式化时间戳 统计当日,第二天,第三天,3个工作日以后的数据...
  6. 全网最具深度的三次握手、四次挥手讲解,深夜思考
  7. 一个Java程序员的阿里面试心得,附答案解析
  8. 【深度学习】Dropout、正反向传播、计算图等的介绍和实现(Pytorch)
  9. 【深度学习】Pytorch的深度神经网络剪枝应用
  10. 7-1 堆栈操作合法性(20 分)