阅读笔记(六)共识算法2PC
一. 前言
本文记录2pc算法的一些论文、博客的精华内容。
二. 共识算法
根据CAP理论,当网络发生分隔的时候,如果保持高可用性,则会损失一致性;反之亦然。为了实现一致性或者最终一致性,必须要实现分隔后可能不同的数据同步,我们称之为共识算法。共识算法主要应用场景包括:
- 决定是否提交操作存入数据库
- 同步时钟
- 是否同意进入分布式算法下一阶段(常用于复制状态机中)
- 选举领导者节点用于更高层的协议处理
对于一个共识算法,最重要的是以下三个特性:
- 达成承诺(Agreement):所有的节点会保持一个相同的值
- 有效性(Validity):决定采取的值必须是由某个节点提出的
- 终结性(Termination):所有节点均会做出决定
二. 2PC(Two-Phase Commit)
2PC(Two-Phase Commit), 即二阶段提交,是一种最简单的共识算法,也非常易于理解。主要包括以下两阶段:
- 组织者向所有参与者建立连接,并给出一个建议的值并收集他们的回复
- 如果所有人同意,则再次和所有参与者沟通并让他们知道。否则告诉所有参与者取消该共识。
下图所示为二阶段的1,2阶段示意图
考虑到组织者也可能会是出问题的那个节点,因此很多时候我们需要采用哨兵模式,增加一个观察节点,当组织者出问题时代替进行共识算法的通信。
四. 参考文献
【1】https://www.the-paper-trail.org/post/2008-11-27-consensus-protocols-two-phase-commit/
阅读笔记(六)共识算法2PC相关推荐
- 论文阅读笔记 | 目标检测算法——SAPD算法
如有错误,恳请指出. 文章目录 1. Introduction 2. Soft Anchor-Point Detector 2.1 Detection Formulation with Anchor ...
- 论文阅读笔记 | 目标检测算法——FSAF算法
如有错误,恳请指出 文章目录 1. Introduction 2. FSAF Module 2.1 Network Architecture 2.2 Ground-truth and Loss 2.2 ...
- 论文阅读笔记 | 目标检测算法——PP-YOLOv2
如有错误,恳请指出. 文章目录 1. Introduction 2. Revisit PP-YOLO 2.1 Pre-Processing 2.2 Baseline Model 2.3 Trainin ...
- wrappers.php,PHP源码阅读笔记六:stream_get_wrappers函数
PHP源码阅读笔记stream_get_wrappers函数 stream_get_wrappers (PHP 5) stream_get_wrappers - 返回注册的数据流列表 Descript ...
- SLAM综述阅读笔记六:基于图像语义的SLAM调研:移动机器人自主导航面向应用的解决方案 2020
转自[[论文阅读]A survey of image semantics-based visual simultaneous localization and mapping 语义视觉SLAM综述 - ...
- 论文阅读笔记 | 目标检测算法——Libra R-CNN算法
如有错误,恳请指出. 文章目录 1. Introduction 1.1 Sample level imbalance 1.2 Feature level imbalance 1.3 Objective ...
- 分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式共识协议有什么作用? 共识问题分布式计算中最基本的概念之一,是让分布式系统中的一组节点就某事达成一致的问题的一个价值.一个行动方案或一个决定.达成共识允许分布式系统充当单个实体,每个单独的节点都 ...
- 论文阅读笔记 | 目标检测算法——YOLOX
如有错误,恳请指出. 文章目录 1. Introduction 2. YOLOX 2.1 YOLOv3 baseline 2.2 Decoupled head 2.3 Strong data augm ...
- 《我的第一本算法书》阅读笔记 6-2 k-means 算法
1 什么是聚类 1.1 将相似的对象分为一组 聚类就是在输入为多个数据时,将"相似"的数据分为一组的操作.1 个组就叫作 1 个 "簇".下面的示例中每个点都代 ...
最新文章
- python参数之间用什么分割_如何根据python的两个参数在美丽的汤中分割
- GridView绑定时通过RowDataBound事件获取数据源列值
- php设置背景为透明,css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍...
- GStreamer 的调试工具
- webserver之处理HTTP请求
- 如何将字符串数组的空格去除_java中如何将数组转换为List
- 95-080-048-源码-启动-启动standalonesession
- linux中的环境变量作用
- 大数据可视化系统开发的作用
- 说一下OFO带给我们的启示
- 解决maven打包 错误: 程序包com.sun.istack.internal不存在 - BBSMAX
- VMware虚拟机nat模式详解
- arm体系结构总结笔5-总线接口
- 跨域的知识和解决方法
- 弘辽科技:如何获取淘宝推广链接?有哪些推广方法?
- 坐标系统的详解-gis
- 机器视觉之ros人脸识别
- 黑苹果cpu支持列表_单卡gpu直通,黑苹果,amd_cpu教程
- 计算机网络----标准化工作及相关知识
- 光纤跳线接口_光缆、尾纤、跳线、终端盒的作用与接法