Skip to content

phoevos/dingane

Repository files navigation

Dingane

A distributed hash table implementation based on the Chord protocol.
Distributed Systems, ECE-NTUA 2020-2021

Included

  • Python implementation using Flask and HTTP requests for sending and routing messages
  • CLI tool
  • Tests to measure system performance on given input
  • Project report

To run

Install dependencies first! (./dependencies.sh)
Each node operates both as a server and as a client.

Server

  1. Start bootstrap node, providing necessary flags:
    • python3 server.py -bs -p 5000
      • -k repl_factor, where repl_factor is a positive int, default = 1
      • -c linearizability, default = eventual
  2. Start other nodes, only providing a valid port number:
    • python3 server.py -p port

Client

To execute client actions one can use the CLI tool. When starting you only need to specify the port of a node already in the system, running on the same machine.

  • python3 cli.py -p port

GIF

Tests

Consecutive Writes

Consecutive Writes

Consecutive Reads

Consecutive Reads

Mixed Read-Write Requests

Mixed Read-Write Requests

Contributors

About

A distributed hash table implementation based on the Chord protocol. Distributed Systems, ECE-NTUA 2020-2021

Topics

Resources

License

Stars

Watchers

Forks