Designed a simple DHT based on Chord. Although the design is based on Chord, it is a simplified version of Chord; finger tables and finger-based routing is in the future plans. There are three things implemented:
- ID space partitioning/re-partitioning
- Ring-based routing,
- Node joins.
The content provider implements all DHT functionalities and support insert and query operations. When run multiple instances of app, all content provider instances form a Chord ring and serve insert/query requests in a distributed fashion according to the Chord protocol.
Concurrent node joins and Node leaves/failures are ignored.
Here are two references for the Chord design: