【问题标题】:Initiator nodes in a distributed system分布式系统中的发起节点
【发布时间】:2020-01-05 13:18:55
【问题描述】:

我的任务是找出分布式系统中状态记录算法的所有可能发起节点。

刚才给出的问题是

“编写一个程序,找出分布式系统中状态记录算法的所有可能发起节点。”。

我想提一下,我们在分布式操作系统的课程中学习了 Chandy - Lamport 的全局状态记录算法。我为 Chandy - Lamport 的另一项任务的全局状态记录算法编写了一个代码。

这个发起节点意味着什么?我以为那些记录了它们相应状态的节点。我对吗?我必须用java编写代码。请建议我遵循的方法或算法。

【问题讨论】:

    标签: java operating-system distributed-computing distributed-system


    【解决方案1】:

    根据Chandy-Lamport algorithm上的维基百科页面:

    算法的假设如下:

    • 没有失败,所有消息都完好无损地到达,并且只有一次
    • 通信通道是单向的,按 FIFO 排序
    • 系统中任意两个进程之间存在通信路径
    • 任何进程都可以启动快照算法
    • 快照算法不会干扰进程的正常执行
    • 系统中的每个进程都会记录其本地状态和传入通道的状态

    该算法使用标记消息工作。每个进程想要 启动快照记录其本地状态并在每个快照上发送一个标记 其传出渠道。所有其他进程,在收到一个 标记,记录它们的本地状态,从哪个通道的状态 标记只是空的,并在所有 他们的传出渠道。如果一个进程收到一个标记后 记录它的本地状态,它记录输入通道的状态 标记来自该标记,因为它携带了此后收到的所有消息 它首先记录了它的本地状态。

    您使用的术语与维基百科的描述略有不同,但我假设您的“节点”对应于上述“进程”。因此,“发起者节点”只是一个发起(请求)快照的简单节点。

    如果这就是您的术语的意思,那么使用 Chandy-Lamport 算法,任何节点都可以是发起节点。因此,问题的答案是“全部”。

    但是,鉴于答案/解决方案的琐碎性质,我怀疑这不是您的任务的真正含义。要么你遗漏了一些上下文,要么任务被错误陈述。我建议你问问你的导师。

    (或者......也许这是一个“技巧问题”。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2013-04-02
      相关资源
      最近更新 更多