CS6963 Distributed Systems

Lecture 01 Course Logistics

Course Structure

Note: 80% or more of this course is lifted straight from MIT 6.824, including lecture notes for many of the lectures.

www.cs.utah.edu/~stutsman/cs6963

Course components

  • Lectures about big ideas, papers, labs
  • Readings: research papers as case studies

    • Read papers before class
    • Otherwise boring, and you can't pick it up by listening
    • there will be quizzes at the start of class to ensure people are engaged
  • Labs: build increasingly sophisticated fault-tolerant services

    • First lab is due on next Thursday
    • Get started on second lab as soon as you can
    • Lab submission is weird; walk through that.
  • Project: groups of 3, a proposal, an artifact, final report, and presentation.

  • TAs: Candy

    • answer questions about material, please post on Canvas
    • help you with labs
    • will post office hours
  • Explain cheating policy in detail.

  • Explain the calendar in detail.

    • Be a bit careful working way ahead. Things will change.
  • Explain about Gitlab account name in detail

  • Not like your typical class.

    • Low structure.
    • Focus is entirely on discussion and projects.
    • Quizzes are just there to keep everyone involved.
    • You will get out what you put in.
    • You all have control over how much fun this class is.
  • Class size is much too big in practice.

    • I need you to pick up the slack.
    • You can hide; please don't.
    • You'll get way more out of this if you participate with me and your classmates.
    • I'm an introvert, too.
  • Expect you'll show up to class each day prepared to discuss.

    • Discussion is a major factor in your grade and the reason we're here.
    • I'll have quizzes for the lectures to help you out with this.
  • This class will be quite frontloaded.

  • By the end it should mostly just consist of reading while hacking.

  • This class is completely and blatantly ripped straight from the MIT course.

    • The projects dictate some of the flow of the class.
    • Often this is going to be rushed and awkward.
    • e.g. in week 2 you'll be learning one of the most notoriously hard distributed systems algorithms, in week 3 I'm going to just ditch you and let you implement it, while I'm gone.
  • Finally, I'm learning this stuff right along with you guys, and it's notoriously tricky.

    • Tell me when I'm wrong.
    • Bear with me when it's hard for me to explain: sometimes I'm working through it as well.

Expectations

  • 40% programming assignments
  • 35% project
  • 25% quizzes

  • Quiz structure

    • By default, individual quizzes with a few questions.
    • Your bottom two quiz grades will be thrown out for computing final grades.
    • May try some weird things
    • Hashed into random group
    • Complete the quiz separately then compare answers
  • I expect most will get full-credit on the programming projects.

    • These will need to be well-done; don't lose point here or you'll suffer.
    • I've seen this here and in OS; try hard to keep the pace and deliver solid solutions.
  • Project

    • Looking like groups of four
    • Can be some thing related to class from your research
    • Otherwise think creatively about the papers and try to build something
    • Think about a question that perhaps might open up a workshop paper
    • Initial report, code, final report, and presentation. Some projects might be more report heavy others more code heavy.
    • I like measurements

Office Hours

  • Office hours are posted. I'll add hours if needed, but also feel free to stop by whenever if you have shorter questions.
  • Candy will be adding her hours shortly.
    • See her if you need help with the projects.
    • Important that you guys help to take care of one another; try to use Canvas discussions liberally.

How Can we Improve

  • Please -- think at each step: how is the class going?
  • What should we be doing differently?
  • What is confusing?
  • What seems irrelevant?
  • What would make class more fun?
  • I'm interested in all feedback; this is your course not mine.

Git, handin, and tools

  • Explain about Gitlab account name in detail
  • Workflow is a bit complicated. Describe.

Learning Go

  • Please do the Go Tour, like tonight!

Absence in the Third Week

  • Goal is to stay on track, so that projects don't get behind.
  • The consensus videos will help (this is an especially challenging topic and important, so we'll spend quite of time there).
  • Candy will have office hours, but I should be on Canvas a lot as well.
  • Please use that time to get as much done of the projects as you can.
    • I'll try to make sure even Project 3 is up by then. I recommend working as far ahead as you can.
    • We'll want to save as much time for the end of the class as we can.

How should I read?

  • Some of these papers are face-meltingly hard.
    • I'll try to give you an overview of the upcoming reading assignment at the end of each prior lecture.
    • Try to use this info to orient yourself in the paper and pick up more details.
    • Read critically and try to understand.

Overview of Topics

  • Focus will be heavily on data center systems. Why?
    • Where the majority of the data is today.
    • Lot's of hard distributed systems problems as these scale.
    • Performance matters unlike in old P2P research.
    • Potential to seriously impact the way people build applications and improve data-intensive applications.
    • Interesting fault-tolerance trade-offs: reliable software/reliable hardware.