gpt4 book ai didi

protocols - 如果 DHT 的某个节点发生故障,这些值是否会变得不可用?

转载 作者:行者123 更新时间:2023-12-04 08:55:56 27 4
gpt4 key购买 nike

我正在阅读有关 DHT 的资料,但很难找到有关节点发生故障时 DHT 值的后果的信息。

据我所知,如果没有数据冗余(哈希表值),单个节点的故障只会使存储在该节点中的值不可用。但是,如果我想使用 DHT 作为任何系统的存储,我希望该系统能够随时依赖所有存储的可用性,对吗?也许数据冗余在这里被外包为一个独立的问题,但这意味着 DHT 的去中心化方面引入了额外的故障点,这似乎是 DHT 的一个巨大缺点。

如果负责这些值的节点发生故障,那么如何保持值的可访问性?

最佳答案

As far as I understand, without redundancy of data (hash table values) the failure of a single node would simply make the values stored in that node unavailable.

这是同义反复。是的,如果您选择无冗余,那么就没有冗余。

But if I wanted to use DHTs as storage for any system, I would like that system to be able to rely on the availability of all storage at any time, right?

这取决于您实际需要多少可用性。没有系统是 100% 可靠的。

并且DHT通常不用作存储系统。无论如何,不​​适用于长期存在的批量数据。它应该被认为是一个动态值查找系统,类似于 DNS,但分布式和点对点。

So how are values kept accessible, if the node responsible for those values fails?

最简单的方法是冗余发布数据,即将数据写入多个节点。要么到最接近目标 ID 的 N 个节点,要么使用其他可以选择多个地址的确定性 key 派生。重新发布数据以补偿存储节点流失的责任也可能由数据的发起者承担。这使得实现的复杂性和安全/博弈论方面变得简单。

存储节点本身也可以执行冗余重新发布,以确保在没有原始节点的情况下数据仍然可用。这种方法的问题是很难在公共(public)网络上正确地保护和激励,尤其是当有多个实现时。在封闭环境中,这更可行。

关于protocols - 如果 DHT 的某个节点发生故障,这些值是否会变得不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63827934/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com