The Chord system is a structured peer-to-peer network architecture realizing a scalable distributed hash table. In Chord, the peers are organized as a ring. A position within Chord which is held by a computing node is called an index node or simply a peer. Each index node has a finger table, and, in addition, holds any data items associated with its own key value and any other data items associated with keys larger than the previous index node in the Chord ring.You may need to study the lecture notes, the relevant paragraphs in the text book, and relevant internet sources in order to acquire the level of understanding of CHORD required for this assignment. Commence the work on this assignment once you are confident to have understood how CHORD works.
Your task is to simulate the Chord system on a single computer as a single (non-parallelized, not multi-threaded) process. We will keep this task as simple as possible. The main objectives are:
• to understand how the nodes in Chord communicate.
• to understand how nodes are managed (added/removed) from the system.
• to understand the effects of adding and removal of index nodes.
• to understand how the finger table is computed and maintained.
• to understand how data distribution takes place in Chord.
• to understand how searching is done efficiently in Chord.
• to understand the concept of scalable code.
To keep the task as simple as possible, you are to write a single-threaded simulation (i.e. no additional threads are to be created during runtime). Follow the following guidelines:
Develop data structures which are suitable to hold required information for each peer in a CHORD system. Note that index nodes can hold local information only (I.e, an index nodes never knows of all the other index nodes).
Remember that your implementation is to simulate a distributed system. Do not make use of any global variables!
Attachment:- assn.zip