Project Title: Chord
Team members:
Roll number Name 1. 2019201016 Shivani Hanji 2. 2019201046 Akash Kumar 3. 2019201074 Pratikkumar Bulani 4. 2019202004 Pranshi Yadav
An implementation of the Chord protocol, which efficiently finds the node in a distributed system that has a particular data value.
Instructions to run code:
1. Download or clone this repository
git clone https://github.com/ShivaniH/Chord-Distributed-Lookup.git
2. To compile the code:
cd your-download-path/Chord-Distributed-Lookup
make
3. To run
Each machine that will act as a Chord node needs to run
./ChordClient specify-some-port-number-here
eg.: ./ChordClient 12345
To create a new Chord ring:
create_chord
To join a Chord ring created by another node (NOTE: Can specify the IP and port of ANY node which is a part of that Chord ring, not necessarily the creator):
join_chord node-ip-address node-port-number
To check who is(are) the current node's successor(s):
display_successor_list
To check who is the current node's predecessor:
display_predecessor
To check the current node's identifier:
display_node_identifier
To view the current node's finger table:
display_finger_table
To insert a new key value pair into the chord ring:
insert_key put-some-string-key put-some-string-value
To display the entries in the current node's hash table:
display_hash_table
To search for a key in the chord ring (and retrieve its value, from whichever node has it):
search_key put-key-string-here
To leave the chord ring and exit the program:
leave_chord