返回顶部
首页 > 资讯 > 精选 >Paxos变种和优化方法有哪些
  • 547
分享到

Paxos变种和优化方法有哪些

2023-06-04 05:06:28 547人浏览 八月长安
摘要

这篇文章主要介绍“Paxos变种和优化方法有哪些”,在日常操作中,相信很多人在Paxos变种和优化方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Paxos变种和优化方法有哪些”的疑惑有所帮助!接下来

这篇文章主要介绍“Paxos变种和优化方法有哪些”,在日常操作中,相信很多人在Paxos变种和优化方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Paxos变种和优化方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Multi Paxos

首先我们来回顾一下Multi Paxos,Multi Paxos在Basic Paxos的基础上确定一系列值,其决议过程如下:

Paxos变种和优化方法有哪些

phase1a: leader提交提议给acceptor

phase1b: acceptor返回最近一次接受的提议(即曾接受的最大的提议ID和对应的value),未接受过提议则返回空

phase2a: leader收集acceptor的应答,分两种情况处理

  phase2a.1: 如果应答内容都为空,则自由选择一个提议value

  phase2a.2: 如果应答内容不为空,则选择应答里面ID最大的提议的value

phase2b: acceptor将决议同步给learner

Multi Paxos中leader用于避免活,但leader的存在会带来其他问题,一是如何选举和保持唯一leader(虽然无leader或多leader不影响一致性,但影响决议进程progress),二是充当leader的节点会承担更多压力,如何均衡节点的负载。Mencius[1]提出节点轮流担任leader,以达到均衡负载的目的;租约(lease)可以帮助实现唯一leader,但leader故障情况下可导致服务短期不可用。

Fast Paxos

在Multi Paxos中,proposer -> leader -> acceptor -> learner,从提议到完成决议共经过3次通信,能不能减少通信步骤?

对Multi Paxos phase2a,如果可以自由提议value,则可以让proposer直接发起提议、leader退出通信过程,变为proposer -> acceptor -> learner,这就是Fast Paxos[2]的由来。

Paxos变种和优化方法有哪些

Multi Paxos里提议都由leader提出,因而不存在一次决议出现多个value,Fast Paxos里由proposer直接提议,一次决议里可能有多个proposer提议、出现多个value,即出现提议冲突(collision)。leader起到初始化决议进程(progress)和解决冲突的作用,当冲突发生时leader重新参与决议过程、回退到3次通信步骤。

Paxos自身隐含的一个特性也可以达到减少通信步骤的目标,如果acceptor上一次确定(chosen)的提议来自proposerA,则当次决议proposerA可以直接提议减少一次通信步骤。如果想实现这样的效果,需要在proposer、acceptor记录上一次决议确定(chosen)的历史,用以在提议前知道哪个proposer的提议上一次被确定、当次决议能不能节省一次通信步骤。

EPaxos

除了从减少通信步骤的角度提高Paxos决议效率外,还有其他方面可以降低Paxos决议时延,比如Generalized Paxos[3]提出不冲突的提议(例如对不同key的写请求)可以同时决议、以降低Paxos时延。

更进一步地,EPaxos[4](Egalitarian Paxos)提出一种既支持不冲突提议同时提交降低时延、还均衡各节点负载、同时将通信步骤减少到最少的Paxos优化方法。

为达到这些目标,EPaxos的实现有几个要点。一是EPaxos中没有全局的leader,而是每一次提议发起提议的proposer作为当次提议的leader(command leader);二是不相互影响(interfere)的提议可以同时提交;三是跳过prepare,直接进入accept阶段。EPaxos决议的过程如下:

Paxos变种和优化方法有哪些

左侧展示了互不影响的两个update请求的决议过程,右侧展示了相互影响的两个update请求的决议。Multi Paxos、Mencius、EPaxos时延和吞吐量对比:

Paxos变种和优化方法有哪些

为判断决议是否相互影响,实现EPaxos得记录决议之间的依赖关系。

到此,关于“Paxos变种和优化方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Paxos变种和优化方法有哪些

本文链接: https://lsjlt.com/news/236611.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Paxos变种和优化方法有哪些
    这篇文章主要介绍“Paxos变种和优化方法有哪些”,在日常操作中,相信很多人在Paxos变种和优化方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Paxos变种和优化方法有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-04
  • sql有哪些优化方法
    小编给大家分享一下sql有哪些优化方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.对查询进行优化,应尽量避免全表扫描,首先...
    99+
    2024-04-02
  • 有哪些SQL优化方法
    这篇文章主要介绍“有哪些SQL优化方法”,在日常操作中,相信很多人在有哪些SQL优化方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些SQL优化方法”的疑惑有所帮助!接...
    99+
    2024-04-02
  • SQL优化方法有哪些
    这篇文章主要讲解了“SQL优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化方法有哪些”吧!一、避免进行null判断 &nbs...
    99+
    2024-04-02
  • 有哪些优化MySQL的方法
    这篇文章给大家分享的是有关有哪些优化MySQL的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MySQL优化1.优化索引、SQL语句、分析慢查询;2.设计表的时候严格按照数据...
    99+
    2024-04-02
  • 优化MySQL的方法有哪些
    这篇文章主要介绍了优化MySQL的方法有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。1、选取最适用的字段属性MySQL可以很好的支持大数据...
    99+
    2024-04-02
  • mysql的优化方法有哪些
    本篇内容主要讲解“mysql的优化方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql的优化方法有哪些”吧!目前项目性能指标是20万用户,20并发...
    99+
    2024-04-02
  • mysql中有哪些优化方法
    mysql中有哪些优化方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、sql优化分解关联查询:将关联(join)放在应用中处理,执行简单的sql,好处是:分解后的sq...
    99+
    2023-06-15
  • Hive优化的方法有哪些
    Hive优化方法主要包括以下几个方面: 数据分区和桶排序:通过将数据分成多个分区,可以减少查询的数据量,提高查询性能。此外,使用...
    99+
    2023-10-22
    Hive
  • mysql优化的方法有哪些
    使用索引:在经常使用的列上创建索引可以提高查询速度。需要注意的是不要过度索引,否则会影响写操作的性能。 优化查询语句:避免使...
    99+
    2024-04-16
    mysql
  • SQL语句优化有哪些方法?
    1、避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引。2、避免判断null 值应尽量避免在where 子句中对字段进行nul...
    99+
    2024-04-02
  • Hibernate HQL优化的方法有哪些
    这篇文章主要讲解了“Hibernate HQL优化的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate HQL优化的方法有哪些”吧!初用Hibernate的人也许都遇...
    99+
    2023-06-17
  • win7优化提速方法有哪些
    本文小编为大家详细介绍“win7优化提速方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7优化提速方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win7优化提速方法一、关闭服务在左下角搜...
    99+
    2023-07-01
  • win10内存优化方法有哪些
    本篇内容主要讲解“win10内存优化方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10内存优化方法有哪些”吧!win10内存优化:方法一、360优化加速一键提升Win10运行速度...
    99+
    2023-07-01
  • clickhouse sql优化的方法有哪些
    点击豪斯(ClickHouse)是一个列式存储的数据库管理系统,专门用于大规模分布式数据处理。以下是一些ClickHouse SQL...
    99+
    2023-10-23
    clickhouse sql
  • react context优化的方法有哪些
    本篇内容介绍了“react context优化的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言我们在使用reac...
    99+
    2023-07-04
  • MongoDB查询优化方法有哪些
    创建索引:在MongoDB中,通过创建合适的索引可以大大提高查询的执行效率。可以使用db.collection.createIn...
    99+
    2024-05-07
    MongoDB
  • 有哪些常用的MySQL优化方法
    下面讲讲关于有哪些常用的MySQL优化方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完有哪些常用的MySQL优化方法这篇文章你一定会有所受益。    &n...
    99+
    2024-04-02
  • sql语句的优化方法有哪些
    小编给大家分享一下sql语句的优化方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql语句优化的几种方法有:1、统一S...
    99+
    2024-04-02
  • 数据库优化的方法有哪些
    这篇文章主要介绍数据库优化的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库优化的几种方式分别是:1、选取最适用的字段属性;2、使用连接来代替子查询;3、使用联合来代替...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作