当DHT中的一个节点死亡时,数据会发生什么?

5

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

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

我的问题是,如果节点在交出其数据之前死亡,会发生什么情况? 那数据就丢失了吗? 或许我的真正问题是:如何保证数据不会在DHT中丢失?”

1个回答

3
一般来说,DHT只是一种分布式算法。具体的实现方式会针对节点故障进行不同处理。
通常情况下,Put请求都会带有一定程度的冗余。此外,目标节点可能会在彼此之间复制数据,或者起始节点可能会定期刷新存储的数据。
在完全去中心化的p2p环境中,您无法真正保证数据自己在网络中永久存在。虽然在足够稳定的网络中,可以实现几天的生命周期。
在p2p网络中,DHT通常只用于发现和元数据发布。
例如,如果节点A想要找到节点B,则它将查询DHT,并在查找过程中访问一些第三方节点,这些节点与A或B没有直接利益关系。
一旦发现完成,"重活"就由A和B之间的直接点对点连接完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接