Update for 25-04-22 12:30
This commit is contained in:
parent
5d44c50f1d
commit
c74fc01d2e
38
tech/DHT.wiki
Normal file
38
tech/DHT.wiki
Normal file
@ -0,0 +1,38 @@
|
||||
= DHT =
|
||||
|
||||
A DHT or Distributed Hash Table is a distributed system that provides a look up
|
||||
service, similar to that of a [[hash_table]]. The difference however, is the
|
||||
distributed, self organizing nature of such a datastructure. The keys are
|
||||
distributed in such a manner that any disruption of nodes causes minimal
|
||||
disruption to the availability of the data.
|
||||
|
||||
DHTs are used in cooperative web caching, distributed file systems, domain name
|
||||
services, instant messaging, and peer-to-peer file sharing. DHTs are used by
|
||||
BitTorrent, Freenet, and [[IPFS]].
|
||||
|
||||
== Structure ==
|
||||
|
||||
A DHT is made up of several components
|
||||
|
||||
* Abstract keyspace
|
||||
* IE all 160bit strings
|
||||
* Partitioned across all participating nodes
|
||||
* Overlay network
|
||||
* TCP/IP protocol to allow nodes to find each other
|
||||
* Allows node to query network for any vlaue
|
||||
|
||||
=== Insertion ===
|
||||
|
||||
Some _filename_ and _data_ exist. A SHA-1 hash is taken of _filename_ and
|
||||
produces a key, _k_, in the specified keyspace. The message `put(k,data)` is
|
||||
sent to any node in the network, and is forwarded till the node responsible for
|
||||
key _k_ is found, and then that node stores the _data_ and _key_.
|
||||
|
||||
=== Retrieval ===
|
||||
|
||||
A node wants to find some _filename_. They take the SHA-1 hash of _filename_
|
||||
and produce some key, _k_. `get(k)` is sent to any other node, and the message
|
||||
is propogated through the network till the node responsible for _k_ is found,
|
||||
and replies with _data_.
|
||||
|
||||
=== Keyspace Partitioning ===
|
@ -11,6 +11,7 @@ Different ways to store and operate on data, with differing efficiency
|
||||
* [[queue|Queue]]
|
||||
* [[skip_list|Skip list]]
|
||||
* [[hash_table|Hash Table]]
|
||||
* [[DHT|Distributed Hash Table]]
|
||||
|
||||
== Non sequential Data Structures ==
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user