ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2008-10-08

MySQL Cluster近況

先日のDevMeetingで見てきたものの中で、最も興味深いのはMySQL Clusterのオンラインノード追加であろう。DevMeetingではJonasができあがっているところまでデモをしてくれたのだが、まったくもって素晴らしい。彼のブログ(下記)に詳細が載っているが、あえてここでも紹介したいと思う。
http://jonasoreland.blogspot.com/2008/08/status-of-createdrop-nodegroup.html

これまでMySQL Clusterを使わない、もしくは避けてきたユーザが口を揃えて言うセリフは「だってデータノードを動的に増やせないでしょ?!」であった。しかし、近い将来にリリースされるバージョンでは、オンラインノード追加という機能が追加される予定である。これは平たく言うとオンラインでデータノードを追加する機能である。(そのまんまやんけ!)今のバージョン(6.3.x)では動的にデータノードを追加することは出来ないのだが、もうすぐすればもう「データノードを動的に増やせないから」なんて決して言わせはしない!!のである。

オンラインデータノード追加とはどのような手順で行うのだろうか。以下に2つのデータノード(NoOfReplicas=2)で構成されたクラスタに、さらにデータノードを2つ追加する手順について述べてみよう。(ほとんどJonasのブログを訳しただけだが。)
  1. config.iniを書き換えて追加する2つのノードに関する情報を記述する。
  2. 管理ノードを再起動する。
  3. 稼働中の2つのデータノードをローリングリスタートする。
  4. 新しく追加する2つのデータノードを開始する。
  5. 追加した2つのノードを使用して、新しくノードグループを作成する。(ndb_mgm> create nodegroup n1,n2)
  6. 既存のテーブルのパーティションを再構成する。
ステップ5におけるn1,n2は新しく追加するデータノードx2である。ステップ5により、既存のノードグループに加えて新しいノードグループが作成されることになるのである。Jonasはステップ6のことを、テーブル・リオーグ(re-organizationの略)と呼んでいたが、この操作が実際にリオーグと呼ばれるかどうかは定かではないらしい。

このような手順でデータノードが追加されるわけであるが、もちろんこの間一切トランザクションを停止する必要はない!!まさにオンラインなのである。あっぱれ!!

負荷が増えた場合にどのようにスケールアウトするかがMySQL Clusterの課題であったので、この点を解消するオンラインデータノード追加機能によりユーザにとっての障壁が減り、その結果MySQL Clusterのユーザが増えることであろう。というわけで将来のリリースに乞うご期待!!

ところで話は変わるが、現時点で最新バージョンであるMySQL Cluster 6.3のバイナリが公開されている。先日まで、
  • バイナリ形式のディストリビューションは6.2が最新
  • 6.3はソースコードによる配布のみ
というちょっとおかしな状態であったが、現在ではいずれもバイナリ形式で配布されているのでぜひ6.3を試してみて欲しい。かなり性能アップに繋がる改善がなされているのである。

MySQL Cluster Downloads
http://dev.mysql.com/downloads/cluster/index.html

ちなみに、最新版は6.3.18であるが上記のサイトでは入手できない。(バイナリによる配布は6.3.17までである。)ただしソースコードを以下のFTPサイトから入手できる。
ftp://ftp.mysql.com/pub/mysql/download/cluster_telco/mysql-5.1.28-ndb-6.3.18/

最新のバージョンをどうしても使いたい!!という人は、ここからダウンロードして自分でビルドしよう。

0 コメント:

コメントを投稿