【问题标题】:What is the meaning of bucket height in the Kademlia paper?Kademlia论文中的桶高是什么意思?
【发布时间】:2019-03-15 17:52:16
【问题描述】:

它说:

我们从一些定义开始。对于覆盖距离范围 2i,2i+1 的 k-bucket,将 bucket 的索引定义为 i。将节点的深度 h 定义为 160 - i,其中 i 是非空桶的最小索引。将节点 y 在节点 x 中的桶高度定义为 x 将插入 y 的桶的索引减去 x 的最低有效空桶的索引。由于节点 ID 是随机选择的,因此不太可能出现高度不均匀的分布。因此,对于具有 n 个节点的系统,任何给定节点的高度以压倒性的概率将在 log n 的常数内。此外,在第 k 个最近节点中,与 ID 最近的节点的桶高可能在 log k 的常数内。

桶高的定义我能看懂,但是不知道为什么需要这个定义,也看不懂最后一句。


更新: 我还认为论文有一个错字:桶高应该是包含 y 的桶的索引减去 x 的最不重要的“NON-”空桶的索引。我错了吗?

【问题讨论】:

标签: kademlia


【解决方案1】:

但我不知道为什么我们需要这个定义

kademlia 在路由表大小和查找步骤方面的 O(log n) 效率的论点是基于将 n 个节点的整个键空间映射到 k 桶中,其中更远的桶覆盖键空间的指数更大的部分。有效地将整个网络压缩成有偏差的样本列表。

然后再往下的参数基于这个基于桶的投影。

此外,与第 k 个最近节点中的 ID 最接近的节点的桶高度可能在 log k 的常数内。

我认为这是一种令人费解的说法,即您的 k 个最近邻居最终都将位于同一个存储桶中或附近,即最深的存储桶(最小索引非空存储桶)。

请注意,这是用flat layout 表示的,在树布局中,最小的桶类似于但不一定与覆盖自身ID 的桶相同。

【讨论】:

  • 我了解 k-buckets 布局,但我看不到存储桶高度定义如何在这里工作。例如,节点 y 的桶高度为 10,这对于任何 k 都是可能的。我看不出这与 k 有什么关系。
  • 家庭存储桶基本上是详尽无遗的。将 k 加倍意味着深度减少 1 位以使其详尽无遗,从而降低主存储桶的深度,从而降低任何存储桶相对于它的高度。
  • 我想你可能指的是那种“动态拆分”桶。但是这里的桶 i 与 k 无关,它只是由距离定义。因此,如果节点 y 到节点 x 的距离在 1024 到 2048 之间,则节点 y 的存储桶将为 10,无论 k 是多少。
  • 你是对的,这可能与桶大小不同。也许他们的意思是,由于高度以对数方式增长,因此邻居将全部聚集在最深的桶周围,并且您必须将距离取幂以覆盖路由表中的〜恒定距离,即它表现出局部性。这是他们以下的先决条件,一个更严格的假设。变量从一个句子到下一个句子的疯狂重载有点令人烦恼。
  • 啊,现在我明白你的意思了,k 不是桶大小,而是与给定节点 x 最接近的 k 个节点。
猜你喜欢
  • 1970-01-01
  • 2016-08-03
  • 2018-05-04
  • 2013-09-09
  • 1970-01-01
  • 2015-02-09
  • 2011-03-29
  • 1970-01-01
  • 2015-03-17
相关资源
最近更新 更多