分布式数据库中多种共识算法详解
该思维导图总结了三种共识算法:串行化器共识算法、两阶段提交协议(Two-Phase Protocol)和两阶段锁协议(2PL)。串行化器算法通过串行化处理命令确保一致性;两阶段提交协议分为请求锁和提交/释放两个阶段,保证事务原子性,但存在效率低、容错性差和死锁风险;两阶段锁协议与两阶段提交协议密切相关,支持事务执行和资源共享。 思维导图清晰地阐述了每种算法的定义、步骤、优缺点以及数学表示(部分算法)。
源码
# 分布式数据库中多种共识算法详解
## 一、串行化器共识算法
### 1. 定义与目标
#### - 确保命令有序性
#### - 确保一致性
### 2. 实现步骤
#### 2.1 命令提交
##### - 客户端向串行化器发送命令请求
#### 2.2 命令转发
##### - 串行化器逐条转发命令给服务器节点
#### 2.3 执行确认
##### - 等待至少2f+1个服务器节点的执行确认
#### 2.4 结果返回
##### - 串行化器收集结果并返回客户端
### 3. 图例说明
#### - 串行化器S和四个服务器节点P1, P2, P3, P4
### 4. 数学表示
#### - Cj^i: 客户端j发出的第i条命令请求
#### - hj^k: 服务器k处理Cj^i得到的计算结果
## 二、两阶段提交协议 Two-Phase Protocol
### 1. 介绍
#### - 分为两个阶段确保事务的原子性
### 2. 阶段1:请求锁
#### - 客户端向所有服务器请求锁
### 3. 阶段2:提交/释放
#### - 客户端向服务器发送命令
#### - 客户端释放锁
### 4. 问题与局限性
#### - 效率问题
##### - 事务处理速度慢
#### - 容错性差
##### - 服务器故障难以恢复
#### - 死锁风险
##### - 事务相互等待导致不可用
## 三、两阶段锁协议 2PL
### 1. 机制
#### - 与两阶段提交协议密切相关
### 2. 支持事务
#### - 支持事务的执行
#### - 支持资源的共享
### 3. 类型
#### - 基本2PL
#### - 强2PL
#### - 意图锁
图片