4

从这里提出的问题:https ://groups.google.com/forum/#!topic/byu-cs-460-computer-networking/hpESI0NapmY

“我在考虑分布式哈希表如何存储数据。我知道每个节点都有一个标识符,然后数据存储在其标识符最接近其(数据)哈希值后继的节点上。我也明白当节点加入或离开网络时,数据会被传输以反映网络中存在的新节点集。

我不明白的是,当一个节点在传递数据之前就死掉了会发生什么。那个数据丢失了吗?也许我真正的问题是:如何保证数据不会在 DHT 中丢失?”

4

1 回答 1

3

一般来说,DHT 只是一种分布式算法。具体实现对节点故障的处理方式不同。

放置请求通常以某种程度的冗余完成。此外,目标节点可以在它们之间复制数据,或者源节点可以定期刷新存储的数据。

在完全去中心化的 p2p 环境中,您无法控制各个节点,您无法真正保证数据本身永远留在网络中。尽管在一个足够稳定的网络上,可能可以实现以天为单位的生命周期。

在 p2p 网络中,DHT 通常仅用于发现和元数据发布。

即,如果节点 A 想要找到节点 B,那么它将查询 DHT,并在查找过程中访问一堆对 A 或 B 没有直接兴趣的第 3 方节点。

一旦发现完成,“繁重的工作”就由 A 和 B 之间的直接对等连接完成。

于 2014-11-20T10:31:21.810 回答