Distributed Hash Tables (DHT)
January 18, 2025 ยท View on GitHub
DHT Structure
Components include:
- A keybase which is a set of 160 bit string
- A
partition()is applied over this keybase to distribute ownership among participating nodes in the DHT. Following hash functions are used- Consistent Hashing, or
- Rendezvous Hashing
- Each node in the network is a skip graph
DHT Read/Write Flow
- Generate hash (e.g SHA-1) for a given file, which gives us a 160 bit key, k
- Send message
put(k, data)to any node in DHT - The message is passed from node -> node until it finally reaches to the node responsible for key
k - This node stores the data and the associated key, k
- Now any client can request to read this data by generating the hash again which will again produce key, k
- Send message
get(k)to any node to read data.
Q/A
- Generate similarity score b/w 2 hashes
- Where exactly keybase partitioning takes place? Or Who decides to partition the available keys?