paxos之Multi-Paxos

2023-10-30

paxos之Multi-Paxos

朴素Paxos算法的Latency很高,Multi-Paxos通过改变Promised的生效范围至全局的Instance(收到来自其他节点的Accept,则进行一段时间的拒绝提交请求),从而使得一些唯一节点的连续提交获得去Prepare的效果。这将原来2-Phase过程简化为了1-Phase,从而加快了提交速度。

basic paxos是由client发起的同步过程,在两阶段返回前,client不能得到成功的返回。

  • 第一阶段a(发送prepare),proposer向acceptor提出一个协议,这里的协议可以理解为client发送过来期望多节点一起保存的一致性内容,举例:一句日志,某个配置等
  • 第一阶段b(计算协议vn),根据半数以上acceptor的返回,选择 max{va,vb,vc} = vn,这里的vx理解为这个acceptor已知的最大协议号,acceptor一旦返回了vx后,则表明:
    • acceptor在接下来的prepare请求中,会返回的vx自增1
    • acceptor不会accept任何小于vx的协议请求,只会accept大于vx的协议请求
  • 第二阶段a(发送决议好的vn),把vn发送给acceptor
  • 第二阶段b,在半数acceptor返回了成功后,再返回client成功通过协议

Multi Paxos一边先运行一次完整的paxos算法选举出leader,有leader处理所有的读写请求,然后省略掉prepare过程.

Multi Paxos要求在各个Proposer中有唯一的Leader,并由这个Leader唯一地提交value给各Acceptor进行表决,在系统中仅有一个Leader进行value提交的情况下,Prepare的过程就可以被跳过:

  如上图:
  1. 流程图中没有了basic paxos的两阶段,变成了一个一阶段的递交协议:
  • 一阶段a:发起者(leader)直接告诉Acceptor,准备递交协议号为I+1的协议
  • 一阶段b:收到了大部分acceptor的回复后(图中是全部),acceptor就直接回复client协议成功写入
  • wiki中写的Accept方法,我更愿意把它当做prepare,因为如果没有半数返回,该协议在超时后会返回失败,这种情况下,I+1这个协议号并没有通过,在下个请求是仍是使用I+1这个协议号
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

paxos之Multi-Paxos 的相关文章

  • 指针与指针型的引用

    引用就是某一变量 目标 的一个别名 对引用的操作与对变量直接操作完全一样 引用的声明方法 类型标识符 引用名 目标变量名 例1 int a int ra a 定义引用ra 它是变量a的引用 即别名 例2 引用型的指针 链表创建时 有这样一段

随机推荐

  • 向上管理怎么做

    https zhidao baidu com question 924075435910031019 html 管理是一门人文科学 需要智商和情商双管齐下 同时也要懂得做好平衡两者冠希 对一个好的管理者这两点要求很高 管理一般都是向下驱动进
  • UE4之-落地快捷键

    End键 在Delete旁边 点击键盘上的End键可将一个物体从高处落地
  • win10 + VS2015 + libtorch 环境搭建

    pytorch地址 本地启动 PyTorch 本次实验使用的环境是win10 VS2015 C 版本是C 11 所以最新的libtorch是用不了的 除非VS使用最新版的VS比如VS2019 VS2022 至于为什么我在这篇帖子找到了答案
  • c语言指针详解_C语言之精华——指针详解(下)

    点击上方 C语言中文社区 选择 设为星标 技术干货第一时间送达 https www cnblogs com lulipro p 7460206 html C语言之精华 指针详解 上 目录 数组和指针 函数和指针 const 和 指针 深拷贝
  • shell 执行sql语句

    对于自动化运维 诸如备份恢复之类的 DBA经常需要将SQL语句封装到shell脚本 本文描述了在Linux环境下mysql数据库中 shell脚本下调用sql语句的几种方法 供大家参考 对于脚本输出的结果美化 需要进一步完善和调整 以下为具
  • 抖音接口安全参数X-Ladon、X-Argus计算过程分析

    抖音APP在每个请求的header中都加入了X Ladon X Khronos X Gorgon X Argus四个安全参数 当url变动的时候 这几个参数也会跟着变化 下面是一个完整的请求报文 method GET path aweme
  • 利用python自带的库sympy,求解不同阻尼比的振动方程表达式

    利用python自带的库sympy 求解不同阻尼比的振动方程表达式 import sympy 导入数学符号运算库 属于自带库 import numpy as np import matplotlib pyplot as plt 导入绘图模块
  • nacos基本用法

    nacos安装环境必须正确配置JAVA HOME nacos用于服务注册与发现 可以代替zookeeper 在分布式服务注册与发现有更好的性能 nacos启动指令 Linux Unix Mac 启动命令 standalone代表着单机模式运
  • python小游戏毕设 打砖块小游戏设计与实现 (源码)

    文章目录 1 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3 1 环境配置 3 2 Pygame介绍 4 具体实现 4 1 实现游戏精灵类 4 2 实现游戏主循环 5 最后 1 项目简介 Hi 各位同学好呀 这里是L学长 今天向大家
  • 解读区块链配置文件

    证书 首先我们现将所有的文件列出来看一下我们的FISCO BCOS起链完成后nodes中有多少配置文件 介绍证书 config ini 主配置文件 主要配置RPC P2P SSL证书 账本配置文件路径 兼容性等信息 start sh sto
  • 基数统计算法--HyperLogLog

    楔子 在我们实际开发的过程中 可能会遇到这样一个问题 当我们需要统计一个大型网站的独立访问次数时 该用什么的类型来统计 如果我们使用 Redis 中的集合来统计 当它每天有数千万级别的访问时 将会是一个巨大的问题 因为这些访问量不能被清空
  • 【Vue3.0】

    提示 继续深入了解Vue3 0内容 文章目录 前言 一 Setup 二 Composition API 前言 提示 这里可以添加本文要记录的大概内容 例如 Vue js是一款流行的JavaScript前端框架 Vue js的2 0版本于20
  • Python调用R(rpy2的基本使用)

    一 rpy2安装 相关环境为 Windows anaconda3 0 R 3 4 4 1 打开cmd 直接安装 安装过程中下载对应版本的R以及R包 conda install rpy2 2 配置环境变量 添加环境变量 不是在path中添加环
  • 归一化方法

    生物信息学中的归一化方法RPKM FPKM TPM SRPBM 是Reads Per Kilobase per Million mapped reads的缩写 代表每百万reads中来自于某基因每千碱基长度的reads数 RPKM是将映射到
  • kerberos认证下hadoop的java应用程序超时分析

    参考资料 https cloud tencent com developer article 1419270 https issues apache org jira browse HADOOP 10786 背景 我们的云平台项目涉及到了没
  • 第三方 视频播放器

    implementation fm jiecao jiecaovideoplayer 4 8 3 视频播放
  • 机器人学基础(3)-动力学分析和力-拉格朗日力学、机器人动力学方程建立、多自由度机器人的动力学方程建立

    机器人学基础 3 动力学分析和力 拉格朗日力学 机器人动力学方程建立 多自由度机器人的动力学方程建立 本章节主要包括拉格朗日力学 拉格朗日函数及建立求解 多自由度机器人的动力学方程 机器人的静力分析 坐标系间力和力矩的变换 主要结合例题进行
  • 基于SSL/TLS双向安全连接设备CA证书认证

    小伙伴儿们 如果觉得文章干货满满 欢迎加入公众号 编程识堂 更多干货等你们来哦 背景消息 设备证书是由CA根证书签发给客户端设备使用的数字证书 用于客户端和服务端连接时 服务端对客户端进行安全认证 认证通过后服务端和客户端可基于证书内的加密
  • 如何在Jenkins构建完代码后,能够查看HTML Report?

    有同学说想要在Jenkins构建完代码后就能查看构建后的结果报告 不知道怎么配置 这里我详细的说明一下步骤 对于想学习的同学有很大帮助 本次说明仅针对 python3 request unittest框架的案例作详细说明 想要完成这项配置过
  • paxos之Multi-Paxos

    paxos之Multi Paxos 朴素Paxos算法的Latency很高 Multi Paxos通过改变Promised的生效范围至全局的Instance 收到来自其他节点的Accept 则进行一段时间的拒绝提交请求 从而使得一些唯一节点