先週、「マルチコアシステムを最大限に活かすMySQLのスケーラビリティと高可用性実現セミナー」に行ってきました。遅くなりましたが、簡単にまとめてみます。
アジェンダ(敬称略)
『MySQL Cluster 7.0 ご紹介』 by サン・マイクロシステムズ株式会社 梶山 隆輔 『MySQL Cluster 7.0に最適なSunのx86プラットフォーム 』 by サン・マイクロシステムズ株式会社 的場謙一郎 『MarketSpeedにおけるMySQL-Cluster適用事例紹介』 by 楽天証券株式会社 木川 英一 『MySQL Cluster 導入のケーススタディ』 by 住商情報システム株式会社 廣濱 顕司
MySQL Cluster 7.0紹介
MySQL Clusterの機能紹介です。私はほとんどMySQL Clusterとはなんぞやという状態だったのですが、僅かな時間で大体の特徴を把握出来て、かなり有り難かったです。MySQL全体の紹介とMySQLの高可用性ソリューションの紹介から始まって、MySQL Clusterの紹介という流れでした。
MySQLの高可用性ソリューション(括弧内は稼働率)
・MySQL Replication(99%)
マスタ→スレイブで非同期型
参照性能を向上させる
マルチマスタ方式も可能だが、データ更新には注意が必要
・MySQL & DRDB(99.9%)
Active-Passive方式
同期型
Heartbeatを使って、データを同期をとる
・MySQL + Shared-Disk(99.99%)
Active-Passive方式
共有ディスクをとり、クラスタ構成中の1ノードのみがデータファイルにアクセスする
更新機能のスケールアウトは出来ない
・MySQL Cluster Standard Edition(99.99〜99.999%)
Active-Active方式
単一障害点(single point of failure)なし
データは複数のノードに記録される
更新もスケールアウト可能
・MySQL Cluster Carrier Grade Edition(99.999%)
無停止でノードの追加が出来る
MySQL Clusterの構成ノード
・SQL Node
標準的なSQLインターフェース
スケールアウトによる性能向上
→パース処理を担当するので、基本的には増やせば増やす程、処理性能はあがる?
レプリケーション構成可能
・Data Node
データストレージ(ディスク/メモリ)
→メモリをばかすか積んだ方が良し
自動的なパーティショニング
→主キーによるKeyパーティショニング
ローカル&グローバルチェックポイント
スケールアウトによる容量と可用性向上
→増やせば増やす程、容量と可用性は向上する。同期処理があるので、処理性能は若干低下する?
・Management Node
管理および設定
"Arbitration"調停役
2ノードでの可用性
→あくまで管理サーバなので、複数台あっても性能向上には寄与しない。
ただし1台だと、そこが単一障害点になる
・NDB API
高パフォーマンス
→SQLのパース処理が必要ない
C++ API
→Java等からも利用できるようなことを言っていた
開発ガイドを公開
その他聞いた話
・Joinに弱い
アーキテクチャ上、Joinの処理が遅い。
解決策としては、MySQL ClusterからMySQL(MyISAM,InnoDB等)にレプリケーションを行い
そこで処理をするようにすると良い
MySQL Cluster 7.0に最適なSunのx86プラットフォーム
アーキテクチャからみたMySQL Cluster。メモリーを一杯積むと幸せになれるということです。
Sunのx86サーバだと省スペースでメモリも一杯積めるので最適ですよという話(笑)
大きな声では言えないけど、HPも中々頑張ってるとのこと
名前は出していないけど、(たぶん)Dellは集積効率はあまりよろしくない模様
MarketSpeedにおけるMySQL-Cluster適用事例紹介
基本的にセミナー外秘のようです。現状のところ、仮想化環境ではちゃんと動かない模様です。
Sunの公式なサポートも今の所なし
MySQL Cluster 導入のケーススタディ
楽天証券の導入事例をベンダー側から紹介
私が理解した範囲の話なので、多少間違っていることもあるかもしれません。貴重な話が聞けてよかったです。ネット上での評判を聞くと、Joinに弱いというところを問題視する人は多いようです。私は、これからのアプリはJoinを多用せず、アプリ側での処理で済ませる方向に向いていると思うので、特に問題ではないのかなと思います。そうしておけば、スケールアウトもし易いですし、またGoogle App Engineに移植もし易いでしょう。
セミナー関係のエントリー・呟きを探してみました。面白いです。
MySQL Cluster セミナーのレポート | Carpe Diem
MySQLクラスターのセミナーに参加 - sakaikの日々雑感〜(C)編
Twitter検索(時間とともに消えるけど)
@sakaikさん、@chikaramさんの呟きが面白い