コンテンツにスキップ

6.5840 Schedule: Spring 2026

チェック

  • [ ] 本文を確認した
  • [ ] 概要を確認した
  • [ ] タグを確認した
  • [ ] inbox/ 直下へ移行した

概要

MIT 6.5840 Distributed Systems の 2026 年春学期スケジュール。 MapReduce、GFS、Paxos、Raft、Linearizability、ZooKeeper、2PC、Spanner、Chain Replication、FaRM、IronFleet、Memcached at Facebook、AWS Lambda、Ray、SUNDR、Bitcoin、PBFT などを扱う。 Go で実装する Labs と論文読解が組み合わされており、分散システムを体系的に学ぶためのロードマップとして使える。

本文

このページは、MIT 6.5840 Distributed Systems の 2026 年春学期の講義、論文読解、Lab、締切をまとめたスケジュール。 将来日の資料や paper questions は過年度のコピーで変更される可能性があると注意書きがある。

講義は火曜・木曜の 1:00-2:30、場所は 54-100。 Lab は Go で実装する形式で、MapReduce、Key/Value server、Raft、KV Raft、Sharded KV が並ぶ。

序盤: MapReduce、RPC、GFS、Paxos

最初の講義は Introduction。 準備として MapReduce paper を読み、Lab 1: MapReduce が出される。

序盤の流れは次の通り。

  • Lecture 1: Introduction
  • Reading: MapReduce (2004)
  • Lab 1: MapReduce
  • Lecture 2: RPC and Threads
  • Preparation: Online Go tutorial
  • Lecture 3: GFS
  • Reading: GFS (2003)
  • Lab 2: Key/Value server
  • Lecture 4: Paxos
  • Reading: Paxos Made Simple

ここでは、分散処理の基本モデル、RPC と並行処理、巨大ファイルシステム、合意プロトコルの導入が扱われる。 Go tutorial が early stage に入っているため、Lab 実装前提のコースであることが分かる。

Go patterns と Raft

2月後半には Russ Cox による Go patterns のゲスト講義が入る。 準備として Go の論文 "The Go Programming Language and Environment" を読む。

その後、Fault Tolerance: Raft が2回に分かれて続く。

  • Lecture 6: Fault Tolerance: Raft (1)
  • Reading: Raft extended paper, Section 5 まで
  • Lab 3: Raft
  • Due: Lab 3A
  • Lecture 7: Fault Tolerance: Raft (2)
  • Reading: Raft extended paper, Section 7 以降
  • Due: Lab 3B, Lab 3C, later Lab 3D

6.5840 の中核は Raft Lab。 leader election、log replication、persistence、snapshot などを段階的に実装し、後続の KV Raft と Sharded KV の土台にする。

一貫性、ZooKeeper、分散トランザクション

Raft の後には、Consistency and Linearizability が入る。 Herlihy/Wing の Linearizability paper を Section 3.1 まで読む。 ここで、クライアントから見た操作履歴が単一の逐次実行に見えるとはどういうことかを学ぶ。

次に ZooKeeper。 ZooKeeper paper を読み、coordination service としての design、watch、ordering、fault tolerance を扱う。

その後、Distributed Transactions。 6.033 Chapter 9 の一部を読み、2PC、atomicity、failure、recovery の基礎を押さえる。

Mid-term exam は Lecture 1〜11 と Lab 1、2、3A-C が範囲。 open book、notes、laptop 可。

後半: Spanner、Chain Replication、FaRM、Verification

春休み後は、より発展的な distributed storage / transaction / verification に入る。

  • Lecture 12: Spanner
  • Reading: Spanner (2012)
  • Lecture 13: Chain Replication
  • Reading: Chain Replication (2004)
  • Lecture 14: Optimistic Concurrency Control
  • Reading: FaRM (2015)
  • Lab 5: Sharded KV assigned
  • Lecture 15: Verification of distributed systems
  • Reading: IronFleet (2015)

Spanner は TrueTime、external consistency、global distribution。 Chain Replication は高可用 replicated storage の順序づけ。 FaRM は RDMA と optimistic concurrency control による high-performance distributed transaction。 IronFleet は distributed systems の formal verification。

この並びは、単なるアルゴリズム講義ではなく、実システムと論文を接続して読む構成になっている。

Cache consistency、serverless、Ray

4月中旬以降には、Memcached at Facebook、AWS Lambda、Ray が入る。

  • Lecture 16: Cache Consistency: Memcached at Facebook
  • Reading: Memcached at Facebook (2013)
  • Lecture 17: AWS Lambda
  • Reading: On-demand Container Loading (2023)
  • Lecture 18: Ray
  • Reading: Ray (2021)

Memcached at Facebook は、大規模 cache、consistency、replication、invalidation、multi-region の現実的な設計を学ぶための題材。 AWS Lambda の lecture では、Marc Brooker による guest lecture として on-demand container loading が扱われる。 Ray は distributed execution framework として、task scheduling、actor、fault tolerance、ML workloads の基盤を学ぶ位置づけ。

終盤: SUNDR、Bitcoin、PBFT

終盤は、security、peer-to-peer、Byzantine fault tolerance に寄る。

  • Lecture 19: Fork Consistency, SUNDR
  • Reading: SUNDR (2004)
  • Lecture 20: Peer-to-peer: Bitcoin
  • Reading: Bitcoin (2008) と補足解説
  • Lecture 21: Byzantine Fault Tolerance
  • Reading: Practical BFT (1999)
  • Lecture 22: Project demos

SUNDR は不正な server を前提にした fork consistency。 Bitcoin は peer-to-peer consensus と proof-of-work の題材。 PBFT は Byzantine fault model における replication protocol。

Final exam は Lecture 12〜22 と Labs 3D、4A-C が範囲。 こちらも open book、notes、laptop 可。

Labs

Lab は次の順番で出される。

  1. Lab 1: MapReduce
  2. Lab 2: Key/Value server
  3. Lab 3: Raft
  4. Lab 4: KV Raft
  5. Lab 5: Sharded KV

MapReduce で分散処理の基本と worker coordination を実装する。 Key/Value server で RPC と server/client の構造に慣れる。 Raft で consensus と fault tolerance を実装する。 KV Raft で replicated state machine と key/value service を組み合わせる。 Sharded KV で shard 配置、migration、複数 replica group を扱う。

学習メモとしての使い方

このスケジュールは、独学ロードマップとしてかなり使える。 順番に論文を読むだけでなく、対応する Lab を実装することで、読むだけでは分からない failure case と concurrency bug に触れられる。

特に Go で backend を書く人にとっては、goroutine、RPC、lock、condition variable、timeout、retry、persistence、test race を実地で学べる。 Raft Lab は難しいが、分散システムの土台になるため価値が高い。

要点

  • MIT 6.5840 は分散システムの定番講義で、論文読解と Go 実装 Lab が組み合わされている。
  • 序盤は MapReduce、RPC、GFS、Paxos。
  • 中核は Raft と KV Raft。
  • 後半は Spanner、Chain Replication、FaRM、IronFleet、Memcached at Facebook、AWS Lambda、Ray、SUNDR、Bitcoin、PBFT。
  • Labs は MapReduce、KV server、Raft、KV Raft、Sharded KV。
  • 独学では、論文を読むだけでなく Lab を実装することで理解が深まる。

タグ

distributed-systems #mit-6.5840 #raft #consensus #go #systems-reading