... | ... | @@ -7,12 +7,12 @@ |
|
|
In this lab you'll build a MapReduce library as a way to learn the Go programming language and as a way to learn about fault tolerance in distributed systems. In the first part you will write a simple MapReduce program. In the second part you will write a Master that hands out jobs to workers, and handles failures of workers. The interface to the library and the approach to fault tolerance is similar to the one described in the original [MapReduce paper](http://research.google.com/archive/mapreduce-osdi04.pdf).
|
|
|
|
|
|
### Collaboration Policy
|
|
|
You must write all the code you hand in for 452, except for code that we give you as part of the assignment. You are not allowed to look at anyone else's solution, and you are not allowed to look at code from previous years. You may discuss the assignments with other students, but you may not look at or copy each others' code. Please do not publish your code or make it available to future 452 students -- for example, please do not make your code visible on github.
|
|
|
You must write all the code you hand in for 452, except for code that we give you as part of the assignment. You are not allowed to look at anyone else's solution, and you are not allowed to look at code from previous years. You may discuss the assignments with other students, but you may not look at or copy each others' code. Please do not publish your code or make it available to future 452 students -- for example, please do not make your code public on github.
|
|
|
|
|
|
Undergrads taking 452 may do the labs with a partner. Masters students should complete the labs individually.
|
|
|
|
|
|
### Software
|
|
|
You'll implement this lab (and all the labs) in [Go 1.3](http://www.golang.org/) (the last released version). This version is available as packages for Linux and Mac OSX through [MacPorts](https://www.macports.org/). You can also download binaries from the Go web site.
|
|
|
You'll implement this lab (and all the labs) in [Go 1.5](http://www.golang.org/) (the last released version). This version is available as packages for Linux and Mac OSX through [MacPorts](https://www.macports.org/). You can also download binaries from the Go web site.
|
|
|
|
|
|
The Go web site contains lots of tutorial information which you may want to look at. We supply you with a non-distributed MapReduce implementation, and a partial implementation of a distributed implementation (just the boring bits).
|
|
|
|
... | ... | |