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

Part 8

スケールの理論

30秒でつかむ データの置き場所と、増やし方を選ぶ
データの置き場所と、増やし方を選ぶ一つのアプリから、用途別のデータストアと複数台の構成へ広げます。1置き場所速さと一貫性2アプリ必要な処理3台数容量を増やす
  1. 置き場所 速さと一貫性
  2. アプリ 必要な処理
  3. 台数 容量を増やす

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

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

この Part の所要時間は 3〜4 時間が目安です。 終えると、データ配置、データストア、スケールアウト、レプリケーションの選択肢を、その制約とともに比較できます。 新しい開発環境は必要ありません。

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