DHT に関する基本的な考え方は wiki から入手しました。
ストアデータ:
DHT ネットワークでは、すべてのノードが の特定の範囲を担当しますkey-space
。ファイルを DHT に保存するには、まずhash the file's name to get the file's key
; 2番目にsend a message put(key, file-content) to any node of the DHT
、メッセージは責任のあるノードに中継され、key
そのノードはペアを保存します(key, file-content)
。
データを取得:
DHT からファイルを取得するときは、まず、ファイルの名前をハッシュしてkey
;を取得します。2番目に任意のノードにメッセージを送信し、メッセージget(key)
を中継します...
質問:
- ファイルを保存するには、ファイルの名前をハッシュして を取得できます
key
が、wiki には次のように記載されています。
現実の世界では、キー k は、ファイルの名前のハッシュではなく、ファイルのコンテンツのハッシュであり、ファイルの名前を変更してもユーザーがファイルを見つけるのを妨げないように、コンテンツ アドレス可能なストレージを提供します。
ファイルの内容をハッシュしますか? ファイルの内容を知るにはどうすればよいですか? ファイルの内容を既に知っている場合、なぜ DHT で検索するのでしょうか?
ウィキによると、参加しているすべてのノードは、ファイルを保存するためにいくらかのスペースを確保します。では、DHT に参加した場合、自分が担当
spare 10G disk space
するファイルを保管しなければならないということですか?key falls into the specific key-space
実際にそれらのファイルを保存するためにいくらかのディスク容量を確保する必要がある場合、それら
(key, file-content)
をディスクにどのように保存すればよいでしょうか? つまり、ファイルをB-tree
ディスク上でまたは何かに配置する必要がありますか?クエリが発生したとき、コンピューターはどのように応答しますか? まず、 をチェックし
queried key
、 が にある場合は、ディスク上key-space
で を見つけます。corresponding file
右?