MIT OCW 6.824 - Distributed Computer Systems Engineering
MIT OCW 6.824 - Distributed Computer Systems Engineering

This is my study notes of this course.

Lecture 1: Introduction

Gave an overview and the reasons for why distributed systems are necessary. MapReduce is given as an example of a distributed system.

Lecture 2: RPC & Threads

Some Golang examples were walked through to demonstrates some of its concurrency constructs.

∆ What are the three "big reasons" for using threads? ? ﹣ I/O Concurrency ﹣ Parallelism ﹣ Convenience: instead of having logic to check "when to do the background things".

Lecture 3: GFS

A paper of GFS and its implementation is explained.

Lecture 4: Primary-backup replication

Mentions: Replication, Hypervisor

∆ What are the two approaches to replication that this lecture's paper mention? ? ﹣ State transferReplicated State Machine

Lecture 5: Go, Threads, and Raft

  • The gotcha of using Closure

Patterns

  • periodically doing something
  • stop the periodically running function
    • don't forget to...