Paxos学习笔记(还在整理)

简介: Paxos学习笔记(还在整理)

Paxos

介绍

Paxos算法是分布式技术大师Leslie Lamport提出的一种基于消息传递的一致性算法。

目的

参与分布式处理的每个参与者逐步达成一致意见。用好理解的方式来说,就是在一个选举过程中,让不同的选民最终做出一致的决定。

 

情景

为描述 Paxos 算法,Lamport 虚拟了一个叫做 Paxos 的希腊城邦进行选举的情景,这个城邦采用民主提议和投票的方式选出一个最终的决议,

 

但由于城邦的居民没有人愿意把全部时间和精力放在这种事情上,所以他们只能不定时的来参加提议,不定时来了解提议、投票进展,不定时的表达自己的投票意见。

 

所以无论是议员,议长或者传递纸条的服务员都不能承诺别人需要时一定会出现,也无法承诺批准决议或者传递消息的时间。

 

但是这里假设没有拜占庭将军问题(Byzantine failure,即虽然有可能一个消息被传递了两次,但是绝对不会出现错误的消息);

 

只要等待足够的时间,消息就会被传到。另外,Paxos 岛上的议员是不会反对其他议员提出的决议的。

 

具体情况

  1. 在整个提议和投票过程中,主要的角色就是 “提议者”(向接收者提出建议) 和 “接受者”(收到提议者的提议后,向提议者表达自己的意见)
  2. 整个算法大致过程:

   第一阶段:

       因为存在多个“提议者”,如果都提意见,那么“接受者”接受谁的不接受的?太混乱了。所以,要先明确哪个“提议者”是意见领袖有权提出提议,

      未来,“接受者”们就主要处理这个“提议者”的提议了

   第二阶段:

      由上阶段选出的意见领袖提出提议,“接受者”反馈意见。如果多数“接受者”接受了一个提议,那么提议就通过了。

 

 3. 其他背景

   1) 怎么明确意见领袖呢?通过编号。每个“提议者”在第一阶段先报个号,谁的号大,谁就是意见领袖。如果不好理解,可以想象为贿选。每个提议者先拿着钞票贿赂一圈“接受者”,谁给的钱多。第二阶段“接受者”就听谁的

   

相关文章
|
缓存 安全 C++
C++无锁队列:解锁多线程编程新境界
【10月更文挑战第27天】
846 7
|
存储 缓存 算法
深入了解Memcached:缓存技术的利器
Memcached是一个开源的高性能分布式内存缓存系统,用于加速动态Web应用。它通过将数据库查询结果、API调用结果或其他数据缓存到内存中,减少对数据库的访问频率,从而提高应用的响应速度。本文详细介绍了Memcached的基本原理、架构、安装配置、使用方法、测试方法以及应用场景。通过Memcached,开发者可以有效提升Web应用的性能,减少数据库负载,改善用户体验。
529 5
|
机器学习/深度学习 编解码 算法
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
1252 0
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
|
机器学习/深度学习 编解码 计算机视觉
【CVPR红外小目标检测】红外小目标检测中的非对称上下文调制(ACM)
【CVPR红外小目标检测】红外小目标检测中的非对称上下文调制(ACM)
708 1
|
消息中间件 监控 负载均衡
深度剖析Kafka中Coordinator的奥秘
深度剖析Kafka中Coordinator的奥秘
801 1
|
运维 网络协议 Unix
Linux终端(Terminal)与控制台(Console)的区别
Linux终端(Terminal)与控制台(Console)的区别
1003 0
【C++干货铺】剖析string | 底层实现
【C++干货铺】剖析string | 底层实现
|
消息中间件 存储 缓存
详解高性能无锁队列的实现-1
详解高性能无锁队列的实现
1015 0
EMQ
|
消息中间件 数据采集 监控
车联网 TSP 平台场景中的 MQTT 主题设计
本文我们将介绍在车联网 TSP 平台搭建过程中,如何进行 MQTT 消息主题设计。
EMQ
928 0
车联网 TSP 平台场景中的 MQTT 主题设计
|
安全 Java
两张图带你看清 ConcurrentHashMap 1.7和1.8的不同
ConcurrentHashMap 包 可以看到这个 ConcurrentHashMap 是位于并发包下面的, 这可是大名鼎鼎的 JUC 呀 并发涉及到线程安全呀,锁的知识点,还有诸如关键字 volatile 等 有关内存屏障的东西 , 还有 Unsafe 类这个更底层的! 😄 嘿嘿~ 我们知道这个 HashMap 是线程不安全的~ ,而 线程安全的 Map 就有这个 HashTable 还有这个 ConcurrentHashMap 。 看到这里不知道小伙伴们会不会 有个小小的疑惑 ? (・∀・(・∀・(・∀・*) 为啥有了 HashTable 还要再设计这个 Concurre
421 0

热门文章

最新文章