2012-07-13 サーバ/インフラを支える技術 第2章 ワンランク上のサーバ/インフラの構築 その2 今日はキャッシュサーバと MySQLレプリケーションについて。 HTTP プロトコルの If-Modified ヘッダとステータスコード 304 Not Modified の話題(Webを支える技術でも読みましたね) Squid キャッシュサーバ Squid をリバースプロキシとして利用できる HTTP プロトコルの機能を使ったページ単位のキャッシュ 静的コンテンツのキャッシュに向いている memcached によるキャッシュ アプリケーションが利用するオブジェクト単位でのデータキャッシュ 動的コンテンツのキャッシュに利用する MySQL のレプリケーション 障害時の復旧を素早くできるようにするためデータを複製しておく シングルマスタ、マルチスレーブ 非同期のコピー SQL 文単位でのレプリケーション 大量の更新をする場合でも SQL 文ごと転送するので通信するデータ量は少ない 実行結果に揺らぎがある場合(ORDERD BY を指定しないで LIMIT をつけるなど)はマスターとスレーブで結果が変わってしまってDB内容が食い違う可能性もある 行単位でのレプリケーション 実際に更新された行のデータを転送 スレーブは I/O スレッド(マスタからのデータをリレーログに記録)とSQLスレッド(リレーログを参照して更新処理)の2つに分けて処理