Skip to content

sigustin/Distributed-key-value-store

Repository files navigation

Distributed-key-value-store

An implementation of a distributed transactional key-value store, using message-passing concurrency. This project simulates a distributed system (with different agents) that use a transactional key-value store. The store is distributed over a certain number of concurrent node and used by different concurrent agent.

Synchronization was implemented using a timestamp and snapshot approach.

This project was made in 2018 for the course LSINF2345 – Languages and Algorithms for Distributed Applications.

Languages used:

  • Erlang

Collaborators

This is a group project I made with Loan Sens. However, as my collaborator could not use to Erlang, I made all the code while he designed parts of the architecture of the project.

What I learned

  • The Erlang programming language
  • To make a distributed application using message-passing concurrency
  • To avoid race conditions in a distributed system setting

Files worth checking out

Compilation and execution

You will need the Erlang compiler and interpreter (BVM) to execute this project.

Compile the project:

erlc src/*

Run the project:

erl

Then once the interpreter opens:

c(launcher). % Load the launcher
launcher:run_read_file(input_files/test_input.txt). % Take commands from 'test_input.txt' file

About

An implementation of a distributed transactional key-value store

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages