问题描述
问题来自此处: https://groups.google.com/forum/#!topic/byu-cs-460-computer-networking/hpESI0NapmY
我不明白的是,当节点死亡之前,它可以移交其数据时会发生什么.数据丢失了吗?也许我真正的问题是:如何确保DHT中不会丢失数据?"
What I don't understand is what happens when a node dies before it can hand off its data. Is that data lost? Maybe my real question is: how can data be guaranteed not to be lost in a DHT?"
推荐答案
DHT通常只是一种分布式算法.特定的实现对节点故障的处理方式有所不同.
A DHT in general is just an distributed algorithm. Specific implementations deal differently with node failures.
放置请求通常以一定程度的冗余来完成.另外,目标节点可以在它们之间复制数据,或者原始节点可以定期刷新存储的数据.
Put requests generally are done with some level of redundancy. Additionally the target nodes may replicate data among themselves or the originating node may periodically refresh the stored data.
在完全分散的p2p环境中,您无法控制单个节点,因此,您不能真正保证数据本身永远保留在网络中.尽管在足够稳定的网络上,可以达到以天为单位的使用寿命.
In a fully decentralized p2p environment where you have no control over individual nodes you cannot really guarantee that data stays in the network forever by itself. Although on a sufficiently stable network lifetimes measured in days can probably be achieved.
在p2p网络中,DHT通常仅用于发现和元数据发布.
In p2p networks DHTs are usually just used for discovery and metadata publication.
即如果节点A要找到节点B,则它将查询DHT,并在查找过程中访问一堆对A或B没有直接兴趣的第三方节点.
I.e. if Node A wants to find Node B then it'll query the DHT and in the lookup process visit a bunch of 3rd party nodes that have no direct interest in A or B.
一旦发现完成,沉重的负担"就是通过A和B之间的直接对等连接完成的.
Once discovery is done the "heavy lifting" is done by a direct peer-peer connection between A and B.
这篇关于当节点在DHT中死亡时,数据将如何处理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!