我有一个任务,要找出分布式系统中状态记录算法的所有可能的发起节点。
确切给出的问题是
"编写一个程序来找出分布式系统中状态记录算法的所有可能的发起节点。
我想提一下,我们已经在分布式操作系统的过程中研究了 Chandy - Lamport 的全局状态记录算法。我为 Chandy 编写了一段代码 - Lamport 的全局状态记录算法用于另一个作业。
此启动器节点表示什么?我以为那些记录了相应状态的节点。我说的对吗?我必须用java编写代码。请向我建议要遵循的方法或算法。
根据 Chandy-Lamport 算法的维基百科页面:
该算法的假设如下:
- 没有失败,所有消息都完好无损地到达,并且只有一次
- 通信信道是单向的,FIFO 是有序
的- 系统中任意两个进程之间存在通信路径
- 任何进程都可能启动快照算法
- 快照算法不干扰进程的正常执行
- 系统中的每个进程都记录其本地状态及其传入通道的状态
该算法使用标记消息工作。每个想要的进程 启动快照记录其本地状态,并在每个快照上发送标记 的传出渠道。所有其他进程,在收到 标记,记录其本地状态,通道的状态 标记只是空的,并在所有 他们的传出渠道。如果进程在具有 记录其本地状态,记录传入通道的状态 标记来自它,携带自那以后收到的所有消息 它首先记录了其当地状态。
您使用的术语与维基百科描述略有不同,但我假设您的"节点"对应于上述"进程"。 因此,"启动器节点"只是一个启动(请求(快照的节点。
如果这就是您的术语的意思,那么使用 Chandy-Lamport 算法,任何节点都可以是发起节点。 因此,问题的答案是"所有这些"。
但是,鉴于答案/解决方案的琐碎性质,我怀疑这不是您的任务的真正含义。 要么您遗漏了一些上下文,要么作业陈述错误。 我建议你问问你的导师。
(或...也许这是一个"技巧问题"。