ITPub博客

首页 > 数据库 > 数据库开发技术 > 一致性协议(Consensus Algorithm)

一致性协议(Consensus Algorithm)

数据库开发技术 作者:T1YSL 时间:2022-05-11 14:14:27 0 删除 编辑

1、多数派

2、两阶段Accept

第一阶段:Propose阶段。Proposers向Acceptors发出Propose请求, Acceptors针对收到的Propose请求进行Promise承诺

第二阶段:Accept阶段。收到多数派Acceptors承诺的Proposer,向 Acceptors发出Accept请求,Acceptors针对收到的Accept请求进行接收 处理

第三阶段(可优化):Commit阶段。发出Accept请求的Proposer,在收 到多数派Acceptors的接收之后,标志着本次Accept成功。向所有 Acceptors追加Commit消息

--------------------------------

经典Paxos

特点:一次实例需要两阶段消息达成(一阶段抢leader、二阶段选定值);

消息数:2f+1个节点一次实例需要(2f+1) *2*2+2次消息通讯

缺点:With multiple concurrent proposers, conflicts and restarts are likely (higher load → more conflicts),性能低、活锁可能


Paxos协议族介绍

Paxos算法的变种不是非此即彼的关系,在不冲突的情况下,可以组合使用

Multi-Paxos

特点:一个Leader执行多次实例;(先经典,然后租约维持)

消息数:2f+1个节点一次实例需要(2f+1) *2+2次消息通讯

Raft

Paxos的一种简化:有主、日志单向复制

通过投票选取主节点leader(任期、心跳,超半数、日志长度)

集群以Leader的日志为准,复制到其他节点,其他节点无条件跟随

通过日志连续无空洞确保集群日志的一致性

超半数的节点接收到的日志可提交应用

已提交的日志不会丢失

在2N+1个节点集群中,最多容忍N个节点失效


协议对比



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69990629/viewspace-2893473/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: kubectl大纲
请登录后发表评论 登录
全部评论
中国开源软件推进联盟PG分会系列技术丛书《快速掌握PostgreSQL版本新特性》一书副主编。数据库技术专家。数据库认证讲师、恩墨学院数据库讲师。擅长MySQL数据库、PostgreSQL等开源数据库。拥有MySQL-OCP 、PostgreSQL-PGCM等数据库认证。

注册时间:2020-12-12

  • 博文量
    152
  • 访问量
    160727