关于CRDT相关的一些理论知识

全称:

  • Conflict-free Replicated Data Type(无冲突的复制数据类型)

由来:

  • 在分布式系统中,不同节点之间的数据复制存在一致性问题(强一致性问题),CRDT作为一种理论来指导如何将原有数据结构设计成在数据复制过程中通向最终一致性的一种新的数据结构

最终结果:

  • 确保操作的独立性并且操作彼此不会冲突从而避免协调。

相关理论:

  • CAP:Consistency, Availability, Partition

    • 混合了分布式特性(如一致性和可用性)与系统模型(网络可靠性指标)。

  • CAC: Consistency, Availability,Convergence

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

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

    • 收敛性是指所有节点都同意是一种可取的有用的状态。

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

  • 因果一致性

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

    • 约定遵循下面三个规则表示潜在一致性,用符号表达 ->:

      1. 在同一执行线程:如果a 和 b 是一个执行线程中的两个操作,如果操作a发生在操作b之前,那么a ->b;

      2. 不同线程Gets From. 如果 a是一个put放入操作,且b是一个get操作,能返回被a放入的写操作结果值,那么a->b;

      3. 传递性Transitivity. 对于操作a, b, 和 c, if a -> b 且 b -> c, 那么 a -> c.

    • 因果一致性并不对并发操作排序,如果 a不在b之前发生,b也不在a之前发生,那么a 和b是并发的,a和b是两个不相关的操作,那么它们在分布式系统中复制就不必遵循任何顺序了,这样就避免了在它们之间使用因果这种串行化方式。

    • 对于使用相同的key值进行put写操作,使用last-writer-win策略,即在初始存储时使用一个时间戳为每次更新分配唯一的版本号,以此来为每个key的所有写操作维护全局的顺序。

    这些规则在同一个线程内的操作之间以及在与数据存储交互的不同线程的操作之间创建了潜在的因果关系,这个模型,并不允许线程直接通讯,而是通过数据存储进行通讯。

关于CRDT的一些理论理解相关推荐

  1. 网络技术(十一)加强MSTP 、STP、VRRP协议理论理解,进一步深究相关协议的实验

    目录 一.前言 二.基础知识 2.1.STP 2.1.1 STP生成树的基本定义 2.1.2 应用场景及作用 2.1.3 端口状态 2.1.4 STP 判决过程 2.1 5 STP 收敛过程 2.1. ...

  2. 不骚不浪不军棋老师四国军棋理论理解之菜鸟用司令和高手用司令

    在四国军棋中,能动的最大棋子是司令,能把司令干掉的有三个棋子:1.司令:2.炸弹:3.不能动的棋(地雷和大本营).从司令的作用和对手来看,我们不难想象司令怕什么,所以用司令走的路线和走法以及气势来判断 ...

  3. 不骚不浪不军棋老师的四国军棋理论理解之狙击与阻击

    在四国军棋四暗游戏中如何做到狙击(空炸或者把炸伪装好在恰当的时机和地点狙杀司令或大棋),狙击的第一步是确认目标:第二步是炸弹(子弹)在位(敌方大棋在你炸弹够的着的地方):第三步是轮到你扣扳机(轮到你走 ...

  4. 【目标检测系列】yolov3之损失函数以及边框回归pytorch源码注释以及理论理解

    1.代码下载: https://github.com/ultralytics/yolov3 2.边框回归与损失函数相关的源码,在文件utils.py中.边框回归和损失函数. 边框回归说白了就是:找到一 ...

  5. 【转】十大30秒内即可理解的科学理论

    十大30秒内即可理解的科学理论:量子场论上榜 http://www.sina.com.cn  2010年06月29日 11:30  新浪科技 新浪科技讯 北京时间6月29日消息, 据英国媒体报道,从量 ...

  6. DGCNN理解理论篇

    DGCNN理解理论篇 参考了LDGCNN论文,分别从输入点集.任务描述.点云特性.局部图结构.图特征提取等角度给出DGCNN数学理论理解. 输入点集 输入数据可用集合来描述,即向量的集合,每一个向量代 ...

  7. 甘利俊一 | 信息几何法:理解深度神经网络学习机制的重要工具

    智源导读:深度学习的统计神经动力学主要涉及用信息几何的方法对深度随机权值网络进行研究.深度学习技术近年来在计算机视觉.语音识别等任务取得了巨大成功,但是其背后的数学理论发展却很滞后.日本理化所的Shu ...

  8. 综述 | 深度学习中的优化理论

    来源:运筹OR帷幄 本文约5200字,建议阅读10+分钟. 展望未来研究趋势,拒绝做调参侠从我开始. 标签:人工智能 神经网络的训练主要通过求解一个优化问题来完成,但这是一个困难的非线性优化问题,传统 ...

  9. 一步步教你轻松学朴素贝叶斯模型算法理论篇1

    一步步教你轻松学朴素贝叶斯模型理论篇1 (白宁超2018年9月3日17:51:32) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对 ...

最新文章

  1. KingDZ 变菜鸟,每日一个C#小实例之---百叶窗图片展示
  2. 大宝的读后感:(转载)
  3. EMNLP 2020 | 基于超边融合的文本增强知识图谱开放域问答
  4. Linux线程——线程同步
  5. tp5.0计划任务删除日志方法
  6. 【java设计模式】之 工厂(Factory)模式
  7. 计算机二级C选择题精华
  8. 游戏人生Silverlight(6) - 贪吃蛇[Silverlight 3.0(c#)]
  9. Java web中的web-xml中标签定义之jsp-config
  10. SQL sever2008 r2安装闪退的解决办法
  11. Math 数学方法、随机数公式、随机数公式推理
  12. 数学与应用数学考研计算机方向,数学专业考研方向解析:应用数学
  13. 好领导,本来应是挖渠人
  14. hangfire oracle,.net core 之Hangfire任务调度
  15. 国际商务英语学习[三]
  16. HDR阴影高光图像增强
  17. GNS模拟linux,GNS3模拟器官方版最新版及安装说明
  18. 什么是分布式存储系统?
  19. mysql数据库迁移方案
  20. 使用Python获取终端的计算机名、ip地址及mac地址

热门文章

  1. 今天太阳了一条狗!大悲咒走起
  2. IKAnalyzer - 开源中文分词器
  3. PMC推出400G 方案实现超大容量OTN高速交叉技术
  4. 传阿里云盘将开启扩容收费测试:200GB售价 108元/年;偷车贼使用苹果 AirTag 追踪想要盗走的高档汽车;Visual Studio 2022和 .NET 6正式版本发布|极客头条
  5. JavaScript Sanitizer API:原生WEB安全API出现啦
  6. 《Python编程从入门到实践》——学习python的第六天
  7. [英语语法]词法之名词
  8. 从面试官的角度分享一些后端校招经验
  9. 软件工程师校招面试救急包
  10. 解决git拉取代码报错: SSL certificate problem: self signed certificate