`

bully算法

 
阅读更多

分布式选举,现在大家都知道的是Paxos算法。。。。。

          许多分布式算法需要一个进程充当协调者、发起者或者其他某种特殊的角色。通常由哪个进程充当这个较色并不重要,重要的是它们中要有一个进程来充当。我们假设每个进程有一个唯一的编号,同时还假设每个进程知道所有其他进程的编号。但是进程不知道当前哪个进程正在运行,以及哪些进程崩溃了。

 

1、bully算法。

当任何一个进程发现协调者不响应请求时,他发起一次选举,选举过程如下:

a\ P进程向所有编号比他大的进程发送一个election消息;

b\ 如果无人响应,则P获胜,成为协调者

c\ 如果编号比他大的进程响应,则由响应者接管选举工作,P的工作完成。

   任何一个时刻,一个进程只能从编号比他小的进程接受election消息,当消息到达时,接受者发送一个OK消息给发送者,表明它在运行,接管工作。

最终除了一个进程外,其他进程都放弃,那个进程就是新的协调者。

    他将获胜消息发送给其他所有进程,通知他们新的协调者。

     当一个以前崩溃的进程恢复过来了后,它将主持一场选举。如果该进程恰好是当前运行进程中编号最大的进程,它将获胜,故此成为欺负算法。

分享到:
评论

相关推荐

    node_bully:Bully算法在分布式系统中的实现

    【标题】"Bully算法在分布式系统中的实现——以node_bully为例" 【描述】"node_bully项目是使用NodeJS编程语言和ZeroRPC库来实现的一种Bully算法的实例。Bully算法是一种选举机制,常用于分布式系统中确定一个领导...

    分布式选举算法

    在给定的“分布式选举算法”主题中,我们关注的是“Bully算法”,这也是压缩包文件名暗示的内容。Bully算法是一种基于消息传递的选举算法,主要应用在分布式系统中解决领导者选举问题。它的基本思想是通过节点的ID...

    Bully:使用Zerorpc库在python和javascript中实现Bully算法

    欺负使用Zerorpc库在python和javascript中实现Bully算法要求: Python(2.7x)-点子安装zerorpc gevent彩色NodeJS(8x)-npm install [所需的库在package.json,npm版本6.1中提供]要运行,请针对不同情况编辑server_...

    BullyAlgorithm:实现Bully选举算法的Node程序

    霸凌算法这是 Bully 算法的一个实现。 它假定一个静态组以简化组管理。 它使用矢量时钟来确定事件顺序。 例如,转到 ShiViz 并上传 ShiVizLog.dat 事件日志。 每个节点都有一个 nodeId,它由它用来接收消息的端口号...

    分布式OLAP系统关键技术研究.pdf

    在当前的研究中, Bully算法是一种常用的选举算法,但是它存在一些缺陷,例如消息复杂度高、时间开销大等。为解决这些问题,本文提出了一种基于Bully算法的优化选举算法。该算法可以将选举消息发送给性能最优的节点...

    分布式系统-分享-Raft与ETCD.pdf

    Bully算法、Raft算法和Paxos算法是常见的几种一致性协议。Bully算法基于节点ID大小选举领导者,而Raft和Paxos则更侧重于共识机制。 Raft算法是一种相对简单的分布式一致性算法,它的核心目标是选举出一个领导者来...

    bully-algorithm:用于从一组分布式计算机节点中动态选举领导者的欺凌算法的实现

    恶霸算法的实现欺负算法是一种从一组分布式计算机进程中动态选举协调员或领导者的方法。 此算法适用于每个进程都可以向系统中的每个其他进程发送消息的系统。入门仅使用以下命令为该过程构建映像并创建Docker容器: ...

    高级操作系统同步.pptx

    Bully算法中,进程通过比较其进程号来决定谁成为协调者,而环算法则按照进程号顺序进行选举。 8. **分布式系统中的死锁**:死锁发生在两个或更多进程相互等待对方释放资源,导致系统停滞不前。通过适当的锁管理和...

    MPI.rar_leader election _mpi dfs

    标题中的“MPI.rar_leader election_mpi dfs”表明这是一个关于使用Message Passing Interface (MPI) ...同时,可以考虑将这个算法与其他领导者选举算法,如Bully算法或Ring算法,进行比较,以理解各种方法的优缺点。

    BullyAlgorithm:恶霸算法

    恶霸算法 恶霸算法 “作为第一个例子,请考虑加西亚·莫利纳(Garcia-Molina)(1982)设计的欺凌算法。当任何过程注意到协调者不再响应请求时,它将启动选举。 进程P进行如下选择: P向数量更大的所有进程发送一...

    中科大软件学院科软考试回忆

    - Bully算法的具体实现。 - RPC库提供的功能。 - **大题知识点**: - Lamport时间戳与时序关系。 - 向量时钟的实现细节。 - 因果一致性模型。 - DHT(分布式哈希表)的数据定位与查询过程。 - Quorum机制在...

    东北大学博士分布式操作系统2007入学试题及答案

    通过以上分析,我们可以看到分布式操作系统、网络操作系统、可伸缩性、RPC、多线程、BULLY算法、一致性模型以及TMR方法在分布式系统设计和操作中的重要性。这些概念和技术不仅构成了现代分布式系统的基础,也是研究...

    2007年东北大学博士入学考试试题-分布式操作系统

    1. **算法概述**:BULLY算法是一种用于选举分布式系统中最高优先级节点的算法。 2. **选举流程**: - 当某个节点认为当前的协调者失效时,会发起选举过程。 - 节点向比自己ID大的所有节点发送ELECTION消息。 - ...

    Sistemas-Distribuidos-I:实施los sisistoss los sisistoss los sistemas distribuidos:algoritmos deeleccióndel coordinador(algoritmo de Bully,elecciónen anillo),de consenso,entre otros,todos en JAVA

    本项目主要关注的是在Java环境中实现分布式系统中的关键算法,包括协调器选择算法(如Bully算法)和共识算法等。下面将详细探讨这些知识点。 首先,**协调器选择算法** 是分布式系统中用于选举一个节点作为领导者或...

    分布式系统2018年期末复习资料1

    选举算法如Bully算法和Ring算法,用于确定领导者。 无线网络中的选举算法考虑了无线环境的特性,如信号强度。 数据一致性模型有强一致性、弱一致性、最终一致性等。 连续一致性关注数据的即时更新,一致性程度...

    数据库高可用和分区解决方案-MongoDB篇.docx

    MongoDB副本集采用Bully算法来选举新的Primary节点。在原Primary节点发生故障时,Secondary节点之一将被选为新的Primary。该算法确保了即使在网络分区情况下也能有效选出新的Primary节点,避免了“脑裂”现象的发生...

    MongoDB 高可用 安装部署

    副本集中的心跳机制用于检测节点状态和同步数据,而Bully算法用于选举新的主节点。 为了进一步优化副本集的性能,MongoDB支持读写分离。通过设置读偏好(Read Preference)来指导客户端读取操作,允许客户端从不同...

    bullyhelper:欺负帮手

    $ java -cp ../target/bully-1.0.jar com.uwemeding.bully.Bully -------- @Scotthudson95 Too many people in the Gym this time of day ! # worse > 按回车键表示“不欺负”,输入“y”然后回车表示欺负 增量运行...

    搭建高可用mongodb集群(三)——深入副本集内部机制

    该系列文章的第一部分介绍了副本集的...选举机制采用了Bully算法,可以很方便从分布式节点中选出主节点。一个分布式集群架构中一般都有一个所谓的主节点,可以有很多用途,比如缓存机器节点元数据,作为集群的访问入

Global site tag (gtag.js) - Google Analytics