Mímisbrunnr知恵の泉

distributed systems // 1台では足りない

分散システム

分散システムは、ひとことで言えば「1台では足りないを成立させる」技術です。複数のマシンが、ネットワークの遅延と故障の中でどう協調し、どこまで一貫性を保てるのか。CAP定理・合意(Paxos/Raft)・レプリケーション・分散トランザクションまで、なぜ分散が難しいかを理論から体系化します。

なぜ学ぶのか

  • 「なぜ難しいか」が分かる。8つの誤謬・FLP不可能性・CAPで、分散の本質的な限界を掴めます。
  • 合意を理解できる。Paxos/Raftがどうリーダーとログの一貫性を保つかを追えます。
  • トレードオフを選べる。一貫性・可用性・レイテンシの調整を設計判断にできます。

こんな場面で役立つ

  • DBレプリケーション・クォーラム・一貫性ハッシュ
  • 合意Paxos/Raftによるリーダー選出とログ複製
  • 信頼性Saga・冪等性・バックオフで壊れにくく
  • 時刻論理時計・ベクトル時計で因果を捉える

ここでは、合意・レプリケーション・論理時計をPythonの最小シミュで挙動を実証し、メッセージのやり取りはMermaidのsequenceDiagramで描く方針です。基礎から時間と順序・一貫性・合意・レプリケーション・分散トランザクションまでを体系化しました。単一マシンはコンピュータ基礎、Spark等の実装はデータエンジニアリングへ相互リンク。

カリキュラム(全7章)

目次・インデックス

第1章 ── 分散システムの基礎

第2章 ── 時間と順序

第3章 ── 通信とRPC

第4章 ── 一貫性モデル

第5章 ── 合意

第6章 ── レプリケーションとパーティショニング

第7章 ── 分散トランザクションと信頼性