一致性Consistency, 可用性Availability, 和收敛性Convergence是分布式系统中相对于CAP定理的另外一个定理,2014年由Mahajan, Alvisi, 和 Dahlin提出: Consistency, Availability, and Convergence 。

  CAP(consistency, availability, partition)混合了分布式特性(如一致性和可用性)与系统模型(网络可靠性指标),在CAC中,则将这些分布式特性与系统模型进行了分离。

收敛性

  在经典的最终一致性模型中有一些无用的模型,比如所有分布式节点都会一致返回一个常量值,Mahajian他们通过引入收敛性这个符合我们常识定义来修正了这些漏洞。

  CAP为什么没有明确考虑收敛性?是因为线性化和顺序这两种一致性里面已经包含了收敛性的需求,当我们检查如因果一致性 causal consistency,我们会发现我们必须明确地考虑收敛性。

  收敛性是指一种实现能力,它能确保被一个节点写入的数据被另外一个读取,收敛性的定义是:描述的是一个节点能够读取到其他节点的写入时的一系列环境条件(如网络,本地时钟等)。

  一个简单的收敛性其实是一种最终一致性,如果一个系统停止了接受写入和足够的通讯发生,那么这个系统就会达到一种状态,这种状态是,对于任何对象o,o的读取会在所有节点上返回同样的值。

  在节点A和B之间的单边收敛 one way convergence是指:使用两步单向通讯完成收敛性,首先 A将修改发往B,然后B将修改发往A。

  如果说,一致性是指所有节点都同意,那么收敛性是指所有节点都同意是一种可取的有用的状态。

  通过引入收敛性,我们可以在安全(一致性)和灵活性(可用与收敛)之间取得平衡。

因果一致性

  因果一致性(Causal consistency)遵循‘happens-before’ 图义,也就是说,写在读之前发生,实时因果一致性(RTC)是增加了时间不可逆的约束。

  没有一致性比实时因果一致性(RTC)更强了,RTC能一边提供可用性,一边提供收敛性系统。

  RTC的实现类似日志交换log-exchange协议,每个写操作会产生一个带有向量时钟vector clock 或版本向量、对象标识和对象值三者结合的更新,向量时钟决定更新的优先权,每个节点上的本地存储跟踪对每个对象的最近更新,当读取一个对象o时,节点不需要任何通讯情况下从本地存储返回最近更新给o,类似地,写操作更新会被创建和加入到本地存储和本地日志,节点之间会定期从它们的本地日志中交换这种更新。最新接受的更新会被追加到本地日志,这样能够用于更新节点的本地存储,替换任何旧的更新,将在因果上优先于新的更新。

  在我们实现中,每个节点定期发送它的日志到所有其他节点以确保单边收敛, 这种实现不需要任何节点之间通讯能确保读写完成,它是单边收敛的原因是,因为接受来自一个发送者的更新能应用到接受者获得收敛状态,节点之间会定期广播它们本地日志的所有更新。同时这也是因果一致性,因为向量时钟携带了每次更新,能确保最新的写操作被读操作获得(时间上先后)。最后,它是RTC实现,因为向量时钟分配不会违反实时性要求,比如通过分配一个旧的向量时钟给一个较新的更新。

CAC理论—一种新的CAP相关推荐

  1. 牛顿第三定律不再起作用:芝加哥大学找到了一种新系统,作用力不等于反作用力...

    来源:AI科技评论 作者:吴彤 编辑:青暮 世界上还有许多并未达到平衡的系统,比如生命,在这样的系统中,牛顿第三定律失效了.目前,芝加哥大学的研究员找到了一种思考非平衡系统中相变的新方法. 牛顿第三运 ...

  2. CMU研究人员提出一种新的深部脑刺激方法,可延长帕金森病治疗效果

    目前用于临床环境例如治疗帕金森氏症的深部脑刺激并不能区分不同的神经回路.因此,针对特定神经元群的选择性刺激可以取得相当大的改善.Spix等人利用光遗传学开发了一种巧妙的电刺激方案,可增强细胞类型的特异 ...

  3. 一种新的图像清晰度评价函数,数字图像清晰度评价函数的研究与改进

    摘要: 摘  要: 通过分析常见的图像清晰度评价函数,针对自动对焦系统中图像清晰度评价问题,提出了一种基于聚焦窗口的改进梯度评价函数算法.改进后的算法具有计算量小.实时性好.评价曲线单峰性好.灵敏度高 ...

  4. Hinton最新演讲!一种新神经网络:前向-前向FF算法,论文已公开!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 转载自:机器之心 | 编辑:杜伟.蛋酱 在 NeurIPS 202 ...

  5. oracle存储多少条数据类型,Oracle目前可以存储极大的对象,这是因为它引入了四种新的数据类型。其中哪一种大对象数据类型在数...

    Oracle目前可以存储极大的对象,这是因为它引入了四种新的数据类型.其中哪一种大对象数据类型在数 更多相关问题 谈谈我国幼儿教师的基本权利和义务. 请帮忙给出正确答案和分析,谢谢! 监察机关在办理监 ...

  6. 计算机辅助英语训练新方法,一种新的计算机辅助英语教学模式

    摘 要: 随着计算机技术的发展,计算机在英语教学领域得到了非常广泛的应用.本文分析了计算机辅助英语教学的优势和当前存在的问题,在此基础上结合计算机辅助英语教学和传统英语教学的优势,提出了一种新的英语教 ...

  7. DeFi猎手丨一文读懂DeFi的7种新玩法,实现最大化收益

    概要: 上周我们对7种新的DeFi玩法进行了报道,其中涵盖了新方向(DeFi指数).新玩法(杠杆流动性挖矿).新提案(Aave新架构).新创意(DeFi+二元期权).新工具(套利机器人). DeFi新 ...

  8. 尝试一种新的带人方式

    尝试一种新的带人方式 最早带人时,没有什么经验,我总是觉得他们做事太慢.慢得让我受不了时,干脆帮他们把代码和文档都写了.一般情况下,也勉强能赶上进度.但这占去了我大部分业余时间,搞我很累,他们似乎也不 ...

  9. 提升小目标检测的一种新的包围框相似度度量:Normalized Gaussian Wasserstein Distance...

    点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 导读 本文分析了小目标检测中使用IoU的最大缺点,对于位置的微小变化太过敏感,因 ...

最新文章

  1. python中的逗号_Python中的逗号有什么作用?
  2. SAP LSMW 导入Open PO单据,系统报错 --- GL account 670100 cannot be used ---
  3. 关于openGL学习心得
  4. python中requests库的用途-python中requests.session的妙用
  5. 排查Java线上服务故障的方法和实例分析
  6. 控件View动态设置高度时会卡顿、速度慢的情况解决
  7. iBATIS In Action:使用高级查询技术(一)
  8. PreparedStatement和Statement比较
  9. mybatis3 中 @Provider 的使用方式
  10. JPG PNG GIF BMP图片格式的区别
  11. 以太坊web3.js文档翻译及说明
  12. Spring Cloud微服务架构图
  13. 数学建模——Logistic Regression逻辑回归算法(二分类及多分类的Python代码实现)
  14. 福利:阿里巴巴Java开发手册(第2版)
  15. QMap QList的安全删除操作
  16. 计算机二级的简单项目,2016年计算机二级考试VB简单综合应用题冲刺
  17. python配置opencv最简单_Python版本OpenCV安装配置及简单实例
  18. java 持久监听blockqueue的变化_Curator目录监听
  19. dns服务器未响应重启就好,网络诊断提示DNS服务器未响应解决方法 - 全文
  20. beforeRouteEnter中的this和与created的执行顺序

热门文章

  1. 人工智能是从什么起源的
  2. 移动**21*设置无法接通_手机怎么设置让别人给你打电话时是无人接听或空号?...
  3. Trustdata:2018年中国互联网母婴内容行业发展洞察报告
  4. 计算机配色在纺织中的应用,浅析纺织染色电脑配色程序
  5. MWC2023,现场海量图片放送!
  6. 网络:认识网络字节序
  7. 百度贴吧软文引流怎么写?每个贴吧都有自己的中心主题
  8. 华南主板超频设置图解_AMD用户不会超频不要紧,开启这个功能免费的性能提升...
  9. OA考勤系统源代码交付包含哪些功能?
  10. 引人关注的核酸产业园 | mRNA 疫苗究竟是?