An implementation of distributed systems papers
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
6.824 is a core 12-unit graduate subject It will present abstractions and implementation techniques for engineering distributed systems. Major topics include fault tolerance, replication, and consistency. Much of the class consists of studying and discussing case studies of distributed systems.
The project includes implementation for the following 2 papers:
- Dean J, Ghemawat S (2008) MapReduce: Simplified data processing on large clusters. Communications of the ACM 51( 1): 107–113.
- Ongaro, D, Ousterhout, J (2014) In search of an understandable consensus algorithm (extended version).
These implementations are built using golang. golang provide many built-in networks libraries which is useful for development and debugging for this type of project.
-
Depending on your Linux distribution, you might be able to get an up-to-date version of Go from the package repository, e.g. by running
$ apt install golang
-
Otherwise, you can manually install a binary from Go's website. First, make sure that you're running a 64-bit kernel, and then run:
$ wget -qO- https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz | sudo tar xz -C /usr/local
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Abdelrahman Noureldin - abdulrahman.nour.eldeen@gmail.com
Project Link: https://github.com/Abdulrahman-Nour/6.824-Distributed-Systems-Projects-2020