🔩 ねじき教室 Go と Web の教室

Part 8

スケールの理論

Part 7 は、1 台を使い切るための理論でした。 ここからは、置き方と増やし方の話です。

どこに置くか、どの道具に置くか、そして台数を増やすと何が起きるか。 どの手にも代償が付いていて、知らずに払うと戻り道が高くつきます。

  1. データをどこに置くか プロセス内メモリ、共有キャッシュ、データベースという 3 つの置き場所を、速さ・一貫性・消え方で使い分けます。
  2. 道具は問い合わせの形で選ぶ 万能型の RDB を正としたうえで、キー引き・全文検索・類似検索といった問い合わせの形ごとに専門の道具を検討します。
  3. 台数を増やすと何が起きるか リソースを増やしたときの効率を測り、単一マシンだから速い手法がスケールを塞ぐ仕組みを見ます。
  4. 増やすほど遅くなることがある リソースを増やしすぎると容量が落ちる現象を、競合と協調の 2 つの係数で表し、線形にスケールするとは何かに答えます。
  5. 書き込み分散は難しい レプリケーションで読みを増やし、シャーディングで書き込みを分け、その代償に何を失うかを CAP 定理まで含めて整理します。
  6. クラウドは代償をどう買い取るか Aurora、Spanner、Aurora DSQL を前章の言葉で解剖し、マネージドな分散データベースが何を肩代わりし、何を返してこないかを見ます。