国内大手メディア企業における MySQL Cluster 導入事例 - MySQLカンファレンス2007
http://www.mysql-ucj2007.jp/details/j21.html
MySQL Clusterとは?
MySQL+DRBD
3rdベンダ製HAソフト利用
- 共有ディスクにデータを格納
- たとえばLifekeeper
SQL層とデータ層の分離
事例:某メディア企業 情報サイト
システム構成概要
- ロードバランサ/Webサーバにより、APサーバへのアクセスを制御し、DBの負荷を分散
- APサーバからはConnector/Jのフェールオーバー機能を利用して耐障害性を確保
- DBサーバはPCサーバ2台、共有ディスクは無し
- オンラインで更新されるデータは、NDBDプロセス上のテーブルに配置
- 参照のみのデータは書くサーバのMysqldプロセス上のMyISAMテーブルに配置
- ...
APサーバ障害の場合
MySQLサーバ障害の場合
データノード(ndbdプロセス)障害の場合
MySQL Cluster導入メリット
- コストメリット
- 設計の横展開可能
- シンプルな構成なので他システムでも利用可
- スケールアウト構成
- 必要な箇所だけサーバを塚することで、柔軟なシステム拡張が可能。ただし、データノードの追加時は要検証。
MySQL Clusterで大変だったこと
- ソフトウェア品質は要改善
- 複数の致命的なバグ(signal 11発生など)に直面
- その後のバージョンでは改善傾向
- Bug #25668 (mysqldダウン) 5.0.36にて修正
- Bug #26176 (Signal11発生) ...
- ...
- パフォーマンス
- WHERE句つきのSELECT文が遅いことがある
- INDEX無しのカラムを検索すると遅い
- engine_condition_pushdouwn=ON で改善
- JOINの多いSQL文で性能問題
- 使用上の制限。一部のクエリを修正して回避
- パラメタチューニング(特にチェックポイント関連)が複雑
- WHERE句つきのSELECT文が遅いことがある
- データ量の制限
- オンメモリデータベースであるため、64bit版サーバの利用検討