All Projects → arindas → mit-6.824-distributed-systems

arindas / mit-6.824-distributed-systems

Licence: MIT license
Template repository to work on the labs from MIT 6.824 Distributed Systems course.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to mit-6.824-distributed-systems

Mobius
C# and F# language binding and extensions to Apache Spark
Stars: ✭ 929 (+1835.42%)
Mutual labels:  mapreduce
Mapreduce
MapReduce by examples
Stars: ✭ 91 (+89.58%)
Mutual labels:  mapreduce
Redisgears
Dynamic execution framework for your Redis data
Stars: ✭ 152 (+216.67%)
Mutual labels:  mapreduce
Bigdata Interview
🎯 🌟[大数据面试题]分享自己在网络上收集的大数据相关的面试题以及自己的答案总结.目前包含Hadoop/Hive/Spark/Flink/Hbase/Kafka/Zookeeper框架的面试题知识总结
Stars: ✭ 857 (+1685.42%)
Mutual labels:  mapreduce
Src
A light-weight distributed stream computing framework for Golang
Stars: ✭ 67 (+39.58%)
Mutual labels:  mapreduce
Bigdata Notes
大数据入门指南 ⭐
Stars: ✭ 10,991 (+22797.92%)
Mutual labels:  mapreduce
Distributed Computing
distributed_computing include mapreduce kvstore etc.
Stars: ✭ 654 (+1262.5%)
Mutual labels:  mapreduce
Dpark
Python clone of Spark, a MapReduce alike framework in Python
Stars: ✭ 2,668 (+5458.33%)
Mutual labels:  mapreduce
Big Data Engineering Coursera Yandex
Big Data for Data Engineers Coursera Specialization from Yandex
Stars: ✭ 71 (+47.92%)
Mutual labels:  mapreduce
Asakusafw
Asakusa Framework
Stars: ✭ 114 (+137.5%)
Mutual labels:  mapreduce
Mare
MaRe leverages the power of Docker and Spark to run and scale your serial tools in MapReduce fashion.
Stars: ✭ 11 (-77.08%)
Mutual labels:  mapreduce
Elixir Iteraptor
Handy enumerable operations implementation.
Stars: ✭ 55 (+14.58%)
Mutual labels:  mapreduce
Dampr
Python Data Processing library
Stars: ✭ 102 (+112.5%)
Mutual labels:  mapreduce
Coursera Uw Machine Learning Clustering Retrieval
Stars: ✭ 25 (-47.92%)
Mutual labels:  mapreduce
6.824 2017
⚡️ 6.824: Distributed Systems (Spring 2017). A course which present abstractions and implementation techniques for engineering distributed systems.
Stars: ✭ 219 (+356.25%)
Mutual labels:  mapreduce
Yandex Big Data Engineering
Stars: ✭ 17 (-64.58%)
Mutual labels:  mapreduce
Repository
个人学习知识库涉及到数据仓库建模、实时计算、大数据、Java、算法等。
Stars: ✭ 92 (+91.67%)
Mutual labels:  mapreduce
gomrjob
gomrjob - a Go Framework for Hadoop Map Reduce Jobs
Stars: ✭ 39 (-18.75%)
Mutual labels:  mapreduce
Powerjob
Enterprise job scheduling middleware with distributed computing ability.
Stars: ✭ 3,231 (+6631.25%)
Mutual labels:  mapreduce
Avro Hadoop Starter
Example MapReduce jobs in Java, Hive, Pig, and Hadoop Streaming that work on Avro data.
Stars: ✭ 110 (+129.17%)
Mutual labels:  mapreduce

MIT 6.824 Distributed Systems

Labs and related materials from the MIT 6.824 Distributed Systems course.

distributed-systems

ci-tests status

This repository will contain no solutions as requested by rtm [email protected]
If you use this template, please make your resulting repository with solutions private.

Overview

From the official website:

What is 6.824 about?

6.824 is a core 12-unit graduate subject with lectures, readings, programming labs, an optional project, a mid-term exam, and a final exam. 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.

This repository was created to serve as an environment for working on the labs.

The tests from the original source tree at git://g.csail.mit.edu/6.824-golabs-2021 have been preserved to a great extent to ensure the authenticity of the labs. The only changes to the tests are updated paths for different artefacts due to the changes in the directory structure.

Organization

The repository is organized as follows:

.
├── assets
│   └── logo.png
├── cmd
│   ├── diskvd
│   ├── lockservice
│   ├── mr
│   ├── pbservice
│   └── viewd
├── datasets
│   └── project-gutenberg
├── LICENSE
├── pkg
│   ├── kvraft
│   ├── labgob
│   ├── labrpc
│   ├── models
│   ├── mr
│   ├── porcupine
│   ├── raft
│   ├── shardctrler
│   └── shardkv
└── README.md

The core of each module is represented as a package under the pkg/ subdirectories. Most of these packages are accompanied by tests in the same directory. The user facing utlitiy command/program binaries are kept under cmd/.

Labs Progress

Mark your progress with this checklist.

  • Lab 1: MapReduce
  • Lab 2: Raft Consensus Algorithm
    • Lab 2A: Raft Leader Election
    • Lab 2B: Raft Log Entries Append
    • Lab 2C: Raft state persistence
  • Lab 3: Fault-tolerant Key/Value Service
    • Lab 3A: Key/value Service Without Log Compaction
    • Lab 3B: Key/value Service With Log Compaction
  • Lab 4: Sharded Key/Value Service

Testing

All of the labs from the original source tree has been migrated to go modules. Except for mapreduce, the tests for all labs may be run as follows:

git clone https://github.com/arindas/mit-6.824-distributed-systems.git
cd mit-6.824-distributed-systems
cd pkg/${PACKAGE_TO_TEST}
go test

For the mapreduce lab, run the tests as follows:

cd cmd/mr/scripts
bash test-mr.sh  # single trial
bash test-mr-many.sh $N_TRIALS  # multiple trials

Building

Required binaries can be built by running go build in the respective cmd/ subdirectories.

Attribution

Materials presented in this repository are based on the materials from MIT 6.824 Distributed Systems course, which are distributed under the Creative Commons License, as mentioned on their website. This repository falls under fair use of the Creative Commons License.

In case of any disputes, please contact: Arindam Das [email protected]

License

This restructured repository is licensed under the MIT License. See LICENSE for full license text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].