Chordy - a distributed hash table

In this homework assignment you are required to implement a distributed hash table following the Chord scheme. In order to understand what you're about to do you should have a basic understanding of Chord and preferably have read the original paper.

The task is to implement the distributed hash table up to the point where you have added the store and done some smaller experiments (section 1 and 2). Write up your results and experience in a report and hand it in at the corresponding reporting seminar.

Some code that might come in handy when testing the system.

At the corresponding reporting seminar you are required to present and demonstrate results of your homework, discuss your findings and problems (if any) you have faced, pros and cons of your solution, and your suggestions on how it can be improved. Specifically for this homework, be prepared to build a small ring (dht) and discuss how to handle possible failures.

Teacher Johan Montelius created page 8 July 2012

Johan Montelius edited 24 September 2012

In this assignment you will implement a distributed hash table following the Chord scheme. In order to understand what you're about to do you should have a basic understanding of Chord and preferably have read the original paper.

Implement the distributed hash table up to the point where you have added the store and done some smaller experiments (section 1 and 2). Write up your results and experience in a report and hand it in at the seminar.

At the seminar we will build a larger ring and perform some measurements. We will also discuss how to proceed with handling of failures.


* chordy.pdf

commented 28 September 2012

Regarding the first version of chordy (section 1):

at the end on page 4, in the stabilize clause, i think it should say:

node(Id, Predecessor, Successor);

instead of

node(Id, Predecessor, Successor, Store);

Johan Montelius edited 28 September 2012

In this assignment you will implement a distributed hash table following the Chord scheme. In order to understand what you're about to do you should have a basic understanding of Chord and preferably have read the original paper.

Implement the distributed hash table up to the point where you have added the store and done some smaller experiments (section 1 and 2). Write up your results and experience in a report and hand it in at the seminar.

At the seminar we will build a larger ring and perform some measurements. We will also discuss how to proceed with handling of failures.


* chordy.pdf

Teacher commented 28 September 2012

You're so right, fixed.

Johan Montelius edited 1 October 2012

In this assignment you will implement a distributed hash table following the Chord scheme. In order to understand what you're about to do you should have a basic understanding of Chord and preferably have read the original paper.

Implement the distributed hash table up to the point where you have added the store and done some smaller experiments (section 1 and 2). Write up your results and experience in a report and hand it in at the seminar.

At the seminar we will build a larger ring and perform some measurements. We will also discuss how to proceed with handling of failures.


* chordy.pdf
* Chord: A Scalable Peertopeer Lookup Service for Internet Applications 

Johan Montelius edited 28 September 2015

In this assignment you will implement a distributed hash table following the Chord scheme. In order to understand what you're about to do you should have a basic understanding of Chord and preferably have read the original paper.

Implement the distributed hash table up to the point where you have added the store and done some smaller experiments (section 1 and 2). Write up your results and experience in a report and hand it in at the seminar.

At the seminar we will build a larger ring and perform some measurements. We will also discuss how to proceed with handling of failures.


* Chordy - a distributed hash table
* Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications 
Some code that might come in handy when testing the system.


* test.erl

Feedback News