|
Distributed Systems
Saarland
University
Winter
Semester 2018
|
Course
Overview | Announcements | Course
Description | Schedule | Project
Course
Overview
Instructors:
Peter Druschel
|
Email: druschel@mpi-sws.org
|
Office hours: Mon 2-3pm, Room 435, Building E1.5
|
|
Email:
dg@mpi-sws.org
|
Office hours: Wed
2-3pm, Room 414, Building E1.5
|
Krishna Gummadi
|
Email:
gummadi@mpi-sws.org
|
Office hours: Fri 2-3pm, Room 434, Building E1.5
|
Teaching
Assistants:
Mohamed Alzayat
|
Email: alzayat@mpi-sws.org
|
Office hours: Tue, Thu 1-2pm, Room 438, Building E1.5
|
Malte Appel
|
Email:
mappel@mpi-sws.org
|
Office hours: Mon
3-4pm, Fri 1-2pm, Room 234, Building E1.5
|
Roberta
de Viti
|
Email:
rdeviti@mpi-sws.org
|
Office hours: Wed 2:30-4:30pm, Room 410, Building E1.5
|
Lectures:
The class meets on Mondays and
Wednesdays 12:00-14:00 hours. The location is building E1.5, room 0.29 in SB, videocast to building G26, room 111 in KL.
Students are encouraged to meet the teaching staff during office hours for
help with any questions or problems. Tutorials will be offered when needed.
Mailing
Lists:
ds-ws18@lists.mpi-sws.org:
includes everyone involved with the course, the teaching staff as well as the
students. Important announcements, such as exam schedules and assignment
deadlines, will be posted on this list. Students can also use it to form
project teams, to discuss projects, and to exchange ideas and experience.
Everyone should join and read this group mailing list daily. To subscribe,
please visit https://lists.mpi-sws.org/listinfo/ds-ws18.
ds-ws18-staff@mpi-sws.org:
includes all members of the teaching staff, the instructors as well as the
teaching assistants. Students should use this for all communication with the
course staff.
Please, email individual staff members only when the
communication is personal, and is not related to the course in general.
Lecture
notes, course schedule
Lecture notes, course
schedule, recommended readings, and assignments can be found here.
Announcements
·
The course mailing list is now set up. Please
subscribe at https://lists.mpi-sws.org/listinfo/ds-ws18
using the same email address you use to send messages (postings from
non-members will be rejected).
·
Office hours have been posted (see above).
·
A new VM image based on 64-bit Ubuntu 18.04 is
now available here.
o User
“ds”: password “ds”
o Root
user: Use “sudo su” to gain
root access in a terminal. (“sudo
<command>” should also work.
o Common
package manager command is: apt install <package>
Please make sure your
submitted solutions work on the new image starting with lab 2.
This course introduces students to the principles, design, and implementation
of distributed systems. The lectures focus primarily on the principles and
design of distributed systems, and cover communication, distributed storage,
naming, synchronization, fault tolerance, peer-to-peer systems, social media
systems, and data centers. A course project exposes students to the
implementation aspects of distributed systems and serves to solidify students'
understanding of the course material.
Intended
Audience / Prerequisites
This core course is open to Bachelor and Master students.
Bachelor students must have passed the basic courses on Programming 2 and Math
2, as well as the concurrent programming or alternatively the operating systems
course. Proficiency in programming (C/C++) and UNIX development tools (e.g.
make, gcc, gdb) is
strictly required to take this course.
The language of the course is English. All lectures, office
hours, tutorials and communication with the course staff will be conducted
exclusively in English.
Textbook
Distributed Systems: Concepts and Design, by George Coulouris, Jean Dollimore,
Tim Kindberg, Gordon Blair. (Addison
Wesley; 5th edition, 2012); or
Distributed Systems, by Maarten van Steen and Andrew S. Tanenbaum (Prentice Hall; 3rd edition,
2017)
A small number of papers will be made available to the class.
The lecture will cover some topics in more depth than the books, and also in a
different order.
Lecture
Notes
Summary lecture notes will be available on the course web-site for some of the material covered in the class.
These notes are primarily meant to help students with taking notes. However,
they will not accurately or consistently cover all the material discussed in
the lectures. Students are expected to know all material covered in the lectures,
and in the assigned readings and projects. Therefore, students should not rely
only on the lecture notes. They should attend class regularly, take their own
notes, and complete all assignments.
Exams
There will be a midterm exam (covering material from the
first half of the course), a final exam (focusing on the second half of the
course), and an optional repeat exam (covering the entire course). The exams
carry equal weight. All exams will be open book and based on the material
covered in lectures, readings, and projects.
Grading
To pass the course, a student must pass either the final or
the repeat exam. Students may choose to take the repeat exam, even if they have
passed the final exam, to try and improve their grade. To be admitted to the
final and repeat exams, a student must (i) pass the
project assignments and (ii) pass the midterm exam. To pass the project
assignments, the sum of all points earned by a student in the project
assignments must be at least 50% of the maximal possible points. To pass the
midterm exam, a student must score at least 30% of the maximum possible points
in the exam. To pass the final exam or repeat exam, a student must score at
least 50% of the maximal possible points in the exam.
Your course grade will be based on a weighted score computed
from the points you earn in your successful examinations and your project
assignments. If a student takes all three examinations, then the exam with the
lowest result will not be considered when computing the course grade. Project
scores count towards 50% of the weighted score and exam scores account for the
remaining 50% of the weighted score.
Class
Project
In a sequence of project assignments, you'll build a
multi-server file system called Yet-Another File System (yfs) in the spirit of Frangipani. The eight project stages correspond
to the design and implementation of (1) lock server, (2) basic file server, (3)
reading, writing and sharing files, (4) MKDIR, REMOVE and locking, (5) caching
lock server, (6) caching extent server and consistency, (7) Paxos, and (8) replicated lock server.
The project will require a substantial amount of software
design and implementation. The software produced will be graded based on its
ability to successfully pass a set of functional and performance tests.
Project teams: Students are required to work on
the projects in small teams of two students. It is the responsibility of the
students to form and manage their own teams. We do not allow individual project
solutions. If your teammate drops the course you must immediately find a
replacement, irrespectively of the current project stage.
All team members must be involved in all aspects of the
project. To collaborate effectively, team members should divide the project
responsibilities so that they can work in parallel. However, each member is
responsible for, and should be familiar with, all the work done by the team.
Proper time management is critical – if you don't start working on the
assignments early you will not be able to complete the projects!
Rules for team registration:
1) For each project, the teams must be registered 48
hours before the submission deadline for that project, by sending an
email to the address used for submissions stated below. Team membership is
sticky --- the team assignments from project X+1 is the team assignments for
project X unless a new team is explicitly registered by the deadline for
project X+1.
2) Teams must have a size of 2. If there are an odd number of
students in the class, then one team of 3 will be allowed on a
first-come-first-serve basis. If there is a single student who is unable to
find a team by the deadline and there is a team of 3, then the third member of
the team of three will be re-assigned to work with the singleton in a team of
2.
3) Only project submissions from registered teams are
accepted. Failure to register a team for project X results in a grade of 0 for
project X but does not preclude registering teams and submitting future
projects.
Project deadlines: Programming projects must be
submitted by 11:59 PM on their due dates (posted on this website). Projects
should be submitted by email to ds-assignment@mpi-sws.org. Expect a confirmation
within 48 hours of handing in your project and please contact the instructors
if you don't receive one. Please remove all unnecessary files from the code you
hand in, such as object files or executables. When
submitting the project, please use the following format for the subject line:
Assignment N - LastName1 LastName2
Late submissions: We will apply a flexible slip
date policy for late submissions. Each student is allocated an automatic
extension of 4 calendar days for the entire semester. Students can use the
extension on any project during the semester in hourly increments. For
instance, you can hand in one project assignment 4 days late, or one assignment
2 days late and two assignments 1 day late.
For team submissions, the slip time will be deducted from
each team member's remaining slip time. Students will not receive credit for
late submissions beyond the automatic extension. If a new team is formed, then
each team member can only take as many slip days as he or she has remaining
from the previous project stages. A team member must stop working on the
project once (s)he is out of slip days, while
other team member(s) can continue to work on the project as long as they have
remaining slip days. In such cases, all team members must state in writing, at
the time of the project submission, when they have stopped to work on the
project. Note that a team member cannot opt out of using available slip days if
the other team members continue working on the project.
Honor code: It is acceptable to discuss ideas,
algorithms, or approaches to solving problems and assignments with other
students. We encourage you to give and get such advice
as it will help you learn the material better and improve your ability to work
in a team. However, what you submit must be the work of your own group; copying
code or solution sets from any source is strictly prohibited