1
填充糕点的路由表如何工作?
此问题是从软件工程堆栈交换迁移的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 我正在尝试实现Pastry Distributed Hash Table,但是有些事情使我无法理解。我希望有人能澄清一下。 免责声明:我不是计算机科学专业的学生。我一生中刚上过两门计算机科学课程,但都没有涉及任何远程复杂的问题。我从事软件工作已经有多年了,所以如果我能将想法付诸实践,我觉得我已经完成了实现任务。因此,我可能只是缺少一些明显的东西。 我已经阅读了作者发表的论文[1],并且取得了一些不错的进步,但是我一直对路由表的工作原理这一点感到困惑: 该文件声称 一个节点的路由表中,RRR,被组织成⌈log2bN⌉⌈log2bN⌉\lceil \log_{2^b} N\rceil 与行2b−12b−12^b - 1每个条目。路由表第n行的2b−12b−12^b - 1条目均引用一个节点,该节点的nodeId在前n位共享当前节点的nodeId,但其n + 1位具有2 b − 1可能值之一,而不是所述ñ + 1个数位在本节点的id。nnnn+1n+1n + 12b−12b−12^b - 1n+1n+1n + 1 的bbb代表一个应用程序特定的变量,通常是444。为了简单起见,让我们使用b=4b=4b=4。所以上面是 一个节点的路由表中,RRR,被组织成 ⌈log16N⌉⌈log16N⌉\lceil \log_{16} N\rceil与行151515的每个条目。路由表第n行的151515个条目均引用一个节点,该节点的nodeId在前n个数字中共享当前节点的nodeId,但其n + 1个数字具有除n +以外的2 b - 1可能值之一当前节点ID中的第1位数字。nnnn+1n+1n + 12b−12b−12^b - 1n+1n+1n + 1 我很了解 此外,NNN是群集中服务器的数量。我也知道 …