This repo contains implementation for the labs and some other exercises/homeworks.
Many files were modified to enable running and debugging with GoLang IDE.
http://nil.csail.mit.edu/6.824
Implement a MapReduce application running locally.
- Master node runs mainly two go-routines, one to check stale/failed tasks, and another, to run the RPC server. Note that more go-routines are created for handling each RPC call.
- The server exposes two methods: Master.GetTask and Master.CompletedTask.
- Workers have one go-routine that constantly
calls the Master node to get new tasks.
- If no tasks are available at the moment, worker will wait and ask later.
- If all tasks are completed or Master is down, workers will exit.
- Workers notify the master node that a task is completed by calling
Master.CompletedTask
. Master node replies to either exit or to ask for a new task.
Entry files are:
They can easily be executed/debugged with the IDE.
- I didn't submit any lab, since I wasn't enrolled, but I respected deadlines :).
- Repository was not created with a fork so the git history looks off.
- Because many files were changed, tests scripts won't run. However, the labs were tested locally without the package changes.