最小化点对点网络中的手指表

问题描述

假设每个处理器pi都有一个finger table,允许它 存储它自己的地址加上两个其他处理器的地址。此外假设 P2P 网络中的处理器数量为 10^6 并且标识符环的大小 是 2^30。

哪些地址必须存储在每个处理器pi的finger表中,以便最小化查找密钥(或决定系统中未存储密钥)所需的消息数量, 同时确保可以找到每个键?

必须采用fingerTable[0] = 后继(...)、fingerTable[1] = 后继的形式 (……)。假设 hp(proc id) 是用于将处理器 ID 映射到环标识符的哈希函数 并且这个哈希函数在整个环上统一映射处理器 ID。

我相信一根手指必须指向 pi 的后继者,这样才能找到每个键。当较大的手指通过一个它正在寻找的值时,这个较小的手指可以一根一根地移动,直到它到达正确的处理器。但是我不确定大手指的地址应该是什么。显然,让大手指跳跃较小的数量会最大限度地减少为查找靠近手指的值而发送的消息数量,但会增加为查找手指上的值而发送的消息数量。

例如,大手指跳过 62,500 个处理器。那么在最坏的情况下需要 16 + 62,500 条消息。如果大手指跳过 31,250 个处理器,在最坏的情况下将需要 32 + 31,250 条消息。

不知道在这种情况下该怎么做。任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...