makurosu8 blog

ゲーム開発全般/勉強会レポート/雑記

『Web開発者のための大規模サービス技術入門』三日目

スケーリングの要所

 ・スケールアップ

  高価で速いハードウェアを買って性能アップ

 ・スケールアウト

  安価で普通の性能のハードウェアを並べてシステム全体の性能を稼ぐ

 現在はスケールアウトが主流

  ・コストが安い

  ・システム構成が柔軟

 CPU負荷(APサーバ)の場合はスケールアウトは簡単

  ・データを持っていないので横展開してアクセスを分散するだけでOK

 I/O負荷(DBサーバ)の場合はスケールアウトは複雑

  ・データ書き込みは分散できない。データ同期ができない

 

大規模データを扱うための基礎知識

3つの勘所

 1.いかにメモリで済ませる事が出来るかが重要

  ・1日目で説明したとおりディスクI/Oは遅いため

 2.データ量の増加に強いアルゴリズムを使う

  ・線形検索をlogオーダアルゴリズムを適用するなど

 3.テクニックを使う

   ・圧縮や検索技術など

基礎知識

 1.OSのキャッシュ

 2.分散を考慮してRDBMSを運用する

 3.大規模な環境でアルゴリズムとデータ構造をを使っていく