CSCI4780 - Distributed Computing Systems Assignment

Download Solution Order New Solution

Assignment Task

Introduction

In this project, you are going to implement a consistent hashing (CH)-based flat naming system. As we studied in the class, consistent hashing provides a lookup service for key-value pairs. The CH system stores (key, value) pairs on a distributed set of servers. These servers collaboratively provide lookup service along with insertion and deletion. In this project, you will implement the CH name servers and a boot-strap CH server, which is a special CH server with certain extra functionalities. In order to simplify the implementation, several assumptions are made as follows.

1. The keys are assumed to be numbers in the range [0, 1023] (both inclusive). This mitigates the need for an extra hash-function. You can use the key value itself as the hash-value.

2. Values are assumed to be alphanumeric strings (no special characters).

3. The CH name server IDs are also numbers in [0, 1023] range.

4. The Bootstrap name server has the ID 0. This will be a permanent node in the system. In other words, the system starts up by having only this bootstrap name server in the system (i.e., starting up this Bootstrap name server starts up the system). The Boot strap name server does not exit the system (when it closes down the DHT system is assumed to have closed down).

5. The lookup, insertion and deletion operations are executed only at the Bootstrap name server. It provides a thread to interact with users and accepts lookup, insertion and deletion commands (see below for more details).

6. The name servers (including the bootstrap name server) interact with one another using sockets primitive.

7. Please note that you are implementing consistent hashing, which means that each name server only knows about it predecessor and successor name servers.

8. It is assumed that the bootstrap name server is known to all other name servers (i.e., it is provided at startup).

9. The entry and exit processes of name servers always start at the bootstrap nameserver.

10. Entry, lookup, insertion and deletion traverse the servers in clockwise direction (i.e., by following successors).

11. You can assume that there will not be any race conditions in the system (i.e., simultaneous lookups, insertions, deletions, entries and exits).

Bootstrap Name Server

As mentioned above the bootstrap name server is a permanent name server. Its startup signals the creation of the CH system and its close-down brings the entire system down. It is assumed that the Bootstrap name server is the first node in the system. In other words, at startup it is responsible for the entire [0, 1023] range. The Bootstrap name server (bnserver) takes a single command line parameter – the name of the bootstrap name server configuration file (bnConfigFile).

This CSCI4780IT and Computer Science has been solved by our PHD Experts at My Uni Paper.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.