Distributed systems labs (Spring 2019)
Lab assignments
Lab 1 - MapReduce (Due: Feb 17)
Lab 2 - Replicated State Machine (Due: Mar 7)
Lab 3 - Fault-tolerant Key-value Store (Due: Apr 11)
Lab 4 - Sharded Key-value Store (Due: May 2)
Acknowledgements
These labs are developed by Robert Morris (MIT 6.824).
Collaboration Policy
See here
Lab Environment
A modern linux envionrment (e.g., Ubuntu 18.04) is recommended for the labs. If you do no have have access to this, consider using a virtual machine.
Lab Repository Setup
Our labs are distributed and submitted through Github. Sign up an account if you don’t yet have one. Then join the labs assignment system via this link. Choose your student ID in the next page. If you don’t see your ID there, contact me via email. Then follow the hints in the next page for initial setup of your private labs repo. (Github sometimes fails this step. Retry after a few minutes if it happens.)
You will submit labs by pushing to your private repo (as many times as you want) and we will collect labs for grading after the lab deadline directly from Github.com. Below are the steps for setting up your the lab environment on your laptop. If you are not familiar with the git version control system, follow the resources here to get started. Cloning your lab repo locally In a VirtualBox terminal, clone your repo by typing the following:
$ git clone https://github.com/shuai-teaching/ds19spring-labs-<YourGithubUsername>.git
$ cd ds19spring-labs-<YourGithubUsername>
You will see that a directory named ds19spring-labs-
Saving changes while you are working on Labs
As you modify the skeleton files to complete the labs, you should frequently save your work to protect against laptop failures and other unforeseen troubles. You save the changes by first “committing” them to your local lab repo and then “pushing” those changes to the repo stored on github.com
$ git commit -am "saving my changes"
$ git push origin
Note that whenever you add a new file, you need to manually tell git to “track
it”. Otherwise, the file will not be committed by git commit
. Make git
track a new file by typing:
$ git add <my-new-file>
After you’ve pushed your changes with git push
, they are safely stored on
github.com. Even if your laptop catches on fire in the future, those pushed
changes can still be retrieved. However, you must remember that git commit
by itself does not save your changes on github.com (it only saves your changes
locally). So, don’t forget to type that git push origin
.
To see if your local repo is up-to-date with your origin repo on github.com and vice versa, type
$ git status
Handin Procedure
To handin your files, simply commit and push them to github.com
$ git commit -am "saving all my changes and handing in"
$ git push origin
We will fetching your lab files from Github.com at the specified deadline and grade them.