MySQL Cluster Features and Roadmap

by John David Duncan

MySQL ClusterのSales EngineerによるMySQL Clusterの機能とロードマップの紹介:

  • MySQLはモジュールアーキテクチャがしっかりしている.そのためストレージエンジンがひとつのレイヤーとして分離しており,MySQL Cluster = MySQL + NDB といった構成が可能となっている.
  • MySQL Clusterはメインメモリデータベース,Shared-Nothing(非共有ディスク型)
  • MySQL 4.1.10aにおけるMySQL Cluster:バイナリまたはRPMから簡単にインストールできる,ドキュメントの充実化,安定性とパフォーマンスの改善,BLOBが使用可能に?,制限事項についても広く理解されてきた,"Cluster Jumpstart"program(?)
  • MySQL 5.0.3におけるMySQL Cluster:MySQL Clusterはver5.0treeにマージ,WHERE句をNDB側で完全に処理するよう,メモリスペースの利用効率改善,パフォーマンス最適化,クエリキャッシュが使えるように?
  • Push-downについて:
SELECT * FROM my_table where non_indexed_column = 42

このとき,
before:
-全てのNDBノードでFullTable走査
-全ての行がMySQL Serverへ送られていた
-WHERE句はMySQL Serverによって評価されていた

after:
-WHERE句の処理はNDB Clusterが行うようになった
-条件に一致した行だけがMySQL Serverへ送られるようになった
  • ver5.0での改善:Batched key lookups
SELECT * FROM my_table where key1 in (1,3,4,5,6,10,19)

before:
lookup結果は全て同時にMySQL Serverへ送られていた

after:
lookup結果は条件に適合するもののみがMySQL Serverへ送られるようになった
  • ver5.1での予定:Replicationとの統合,パーティショニング,インデックス化されていないデータをディスクに保存,VARCHAR(200)等による可変長レコード対応,オンライン・スキーマクラスタ変更(どういう意味?)
  • 必要データ容量の増加よりも安価で使用可能なメモリ容量の増加の方が早い.
  • Global Asynchronous Replication + Local Synchronous Clusterというのが将来像.アメリカ西海岸と東海岸それぞれに配置したMySQL ClusterをGlobal Replicationでつなぐ.
  • Partitioning in MySQL 5.1:
-MERGEテーブルを凌ぐ物になる予定.
-全てのストレージエンジンでサポートする予定
-range, hash, list, keyによってパーティションを形成.
-並行クエリ実行(parallel query execution)の基盤機能となる.
  • MySQL Cluster事例:B2(IPアドレス管理), SwissCom(ハイウェイの交通情報), MiniClip(Flashベースのゲームでハイスコアを管理)

感想.今までのおさらいがほとんど.でも最近のアップデートでの改善点とかいまいち良く分かっていなかったのでこのあたりの話を聞けたのはGood.