用python实现的paxos算法的演示实现。

paxos的Python项目详细描述


这是用python实现的paxos算法的演示实现。

要求

  • Python3

安装

pip install paxos

实施说明

  • paxos算法的提议者、接受者和学习者角色是 在中使用从公共Agent类派生的类实现。
  • 每个角色/代理都在单独的进程中运行。
  • 进程之间的通信使用Queue对象进行,因此 进程在同一台计算机上运行。
  • 帕克索斯简单地说,“我们要求不同的提案 不同的数字。“为了达到这个目的,我们开始每个提议者的过程 建议编号序列等于其自身的PID,然后递增编号 对于每个新的提案,按系统中提案者进程的数目。 这似乎也是由 谷歌员工。
  • 假设系统中的所有进程都被视为 系统从一开始,无需通过 通过法令。

参考文献

待办事项

  • 添加角色的折叠版本,以便每个进程扮演 角色。
    • 一旦我们有了一个折叠的版本,领导就应该重试客户的请求 如果他们确定实例在一段时间后还没有被决定 时间量。这应该可以解决几个问题:
      1. 学习者无法确定是否有更多的价值观 去学习(当它是最后一个丢失的值时)。
      2. 因为领导者们现在记住了 客户请求他们建议,如果要求建议者重试 实例(例如,来自缺少某个值的学习者)则是 可能学习到的价值在没有 承兑人已经接受了该实例中的值(这意味着 建议者应该指定值,但是因为它没有记住 它只是建议没有原始值)。
  • 当一个学习者要求一个提议者重新尝试时,提议者不应该重新尝试 已在某个时间段内重试该建议,因为 否则,通过重新增加提案编号,将保证 在该实例中有一个成功的协议它正在重试。
  • 有一个始终如一的领导者,只执行第一阶段一次。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring使用XML配置重试DAO调用   javasocket编程:消息传递顺序   Java ArrayList从两个列表中删除重复项   java在安卓中每次从数组中获取唯一的编号   java为什么collect方法中的双消费者组合器代码永远无法到达?   java类型实例化和声明在同一行   如何在Java应用程序中获取映射网络驱动器的UNC路径   Javascript(GraalJS)与Java中未签名的右移>>>>   xml Java SAX ContentHandler为每个根节点创建新对象   模拟类的java问题   JavaWebapplet可以和离线applet做同样的事情吗?   在Java中设置Windows系统路径   如何导入jwt。io Java库到JMeter   java Simple Kafka消费者未接收消息   带有GoogleAPI错误的Java Jsoup:状态503   java是否可以通过google plus SignIn检索用户信息而不包括google脚本   Java3D洪水填充