分布式系统互斥算法---非集中式算法
来源:互联网 发布:sqlalchemy sql注入 编辑:程序博客网 时间:2024/05/29 18:12
集中式算法存在单点失效问题,那么我们接着来看一下非集中式算法。
假设共享资源副本被复制了n次,每个副本有其自身协作者控制访问;如果某个进程要访问共享资源,主要获得m>n/2个协作者投票允许即可。
如图1所示,如果进程0要发起访问请求,只要8个协作者中有5个(包括其自身)投票允许即可。
图1
但是该算法也有自身的缺陷,即当某个协作者崩溃时,它将忘记之前投过的票,可能在回复后又投了重复的票给其他请求者;比如已经允许了p进程访问共享资源,之后该协作者重置了,又允许了q进程去访问共享资源,此时可能会出现不一致问题。
为了防止有很多个进程同时发起访问请求导致谁也无法访问共享资源,发起访问的进程可以把请求带上时间戳,其他协作者按照时间戳的先后顺序进行投票允许,同时请求者还需要在访问结束后通知所有其他协作者访问已释放。
0 0
- 分布式系统互斥算法---非集中式算法
- 分布式系统互斥算法---集中式算法
- 分布式系统互斥算法---分布式算法
- 分布式系统互斥算法
- 分布式系统中的互斥算法
- 分布式系统互斥算法---令牌环算法
- 分布式跟集中式系统
- 集中式系统和分布式系统
- 分布式系统算法
- 分布式系统Paxos算法
- 分布式系统Paxos算法
- 分布式系统Paxos算法
- 分布式系统Paxos算法
- 集中式 vs. 分布式系统架构
- 算法:互斥集合
- 互斥:软件算法
- 分布式系统的Raft算法
- 分布式系统的Raft算法
- 修改默认的/tmp/mysqk.sock路径
- 欢迎使用CSDN-markdown编辑器
- 割点和割边
- leetcode 第83题 Remove Duplicates from Sorted List
- 最大流
- 分布式系统互斥算法---非集中式算法
- OC之第四章,C语言特性
- Swift - Swift生成随机数
- 玩转html5<canvas>画图
- ECMAScript5 严格模式,JSON,及其它
- C++中构造函数与析构函数执行顺序
- 二分图的最大带权匹配
- 数据结构与算法——线性表链式存储结构(静态链表)
- 黑马程序员--异常体系