MySQL Cluster
From hirohama.wiki
- 今後は、hirohama.mysqlを更新します。
- MySQL Users Conference Japan 2007
プレゼン資料が期間限定でアップされています。 MySQL Cluster関連、DRBD関連が充実していました。
春のUC(アメリカ)と同じく、JimmyによるHAセッションではMySQL Clusterとレプリケーションの中間に位置するものとしてDRBDを紹介していて、聞いている人の反応は良かった模様。DRBDの事例は、MTV Japanの日本語ぺらぺらな外人さんによるセッションが詳しかった。最後の質問の時間でも、「CRM使ってる?使ってない。そうですか。」とか、「データの量はどれくらい?50GB?それくらいならば、いいかもね。100GB超すと、どうだろう。」とか、既に稼働中の人もちらほら。
MTV Japanの事例では、データ容量50GBで、データ更新のトランザクションが少ないので、DRBD+Heartbeatがはまったけど、性能との関係で、いつでもDRBDが使える訳ではない、などと言及。
MySQL Cluster入門/詳細は、メインの会場で結構多くの人が聞いていたのだけど、最後の質問がゼロだったり。
- MySQL 5.1 リファレンスマニュアルようやく、日本語版のマニュアルが翻訳されました。今までは、ほんの一部だけだったのが、ほぼ網羅しています。翻訳文章の精度はいまひとつですが、無いよりはマシかと。
- ようやく、MySQLからDRBD関連のプレスが発表された。やはりとういうか、扱いもこんな感じで、まるで自社製品のごとく。
MySQL Enterpriseでもサポートされるし。
- MySQL UC2007でDRBDの詳細なセッションがあったのだけど、LINBIT社の開発者二人によるプレゼン資料はアップされていない。残念。
- 今年は行かないつもりだったのだけど、何故か(4年連続で)今年も行くことになったMySQL Users Conference 2007
パートナー向けの打合、セッション、これでもかというくらい「DRBD」をプッシュしてきます。
「他人のものを何故そこまで?」と若干引いていたのですが、どうやら近々パートナリングのプレス出すみたいですね。(最終日のセッションの最後にちらっとプロダクトマネージャが紹介してたので、オープンなハズ。)どうやらHAの機能も一通り揃えている様子。
ここの人も使ってるみたいですし。
- 因みにUC 2007で"MySQLを使ったHA"として紹介していた4パターンは次の通り
- Replication
- Replication+Heartbeat
- Heartbeat+DRBD
- MySQL Cluster
- MySQL Clusterのセッションは残念ながら、あまり人を集めること無かったです。Amazonの事例、MySQL Cluster Performance Tuning、5.1でのMySQL Clusterの新しい機能、などに顔を出しましたが。その中でMikaelがDBT-2向けにいくらかの改変を実施したのは面白そうでした。([1])
- mod_ndb、NDB/J、など直接Data Nodeへアクセスする手段が増えたのは良いことかも知れません。
- 今年は残念ながら、別件でMySQL Cluster BoFに参加出来ませんでしたが、終了後の会場に行ったところ、昨年よりも集まった人数は少なかったのでは?という印象でした。
- MySQL Cluster Carrier Grade Editionでは各種制限(ノード数など)が緩和されて、サポートの内容も若干違うらしい。
- また時間がとれたならば、5.1でいろいろと試したいところです。SCIのドライバもかなりパフォーマンス改善されたものを開発中とのこと。
- MySQL Clusterの試験本が近い将来出版されるかも。(英語で)
- クラスタに限ったハナシでは無いですが参考資料
Contents |
はじめに
- 2004年4月のMySQL Users Conference(米国オーランド)でMySQL Clusterが公になって以来、開発チームとの技術交流、MySQL Cluster開発者による日本での5日間トレーニング受講(関係者のみ)、デブサミでプレゼン発表のお手伝い、IPAでのクラスタ機能検証及びベンチマーク計測などを通して細く長く付き合ってきたMySQL Clusterの備忘録。
- Open Source Conference 2005のセッション「MySQL Cluster」PPT作成お手伝い
- Linux World 2005にてMySQL Clusterデモンストレーション(7台のサーバ使用)
- MySQL Users Conference 2004, 2005, 2006参加
- 5日間のMySQL Clusterオフィシャルトレーニング参加
- 様々なソース(メール、電話会議、MLなど)によるMySQL Cluster関連の情報が、メールの山に埋もれそうなので、備忘録としてまとめる。
- マニュアルなどに記載無いものを中心にメモ書き。
MySQL Cluster Architecture
- 雑誌記事は、掲載時のイメージそのままのPDF版([2], [3])とHTML版があります。基本的に内容はJAVA PRESS Vol.42掲載時のままなので多少情報が古いです。(2005年4月著者校正完了、2005年6月発行)なお誌面の都合で削られたコラム数本もHTML版で公開しました。
MySQL Clusterのセットアップ (Mac OSX)
5.1のバイナリを使うとソースからコンパイルする必要が無い。 OS X向けのTARファイルを使う。
my.cnfの一部
[mysqld3] nonguarded socket=/tmp/mysql3.sock pid-file=/tmp/mysql3.pid datadir=/Users/hirohama/data/data3 basedir=/usr/local/mysql-5.1.16-beta-osx10.4-i686 mysqld-path=/usr/local/mysql-5.1.16-beta-osx10.4-i686/bin/mysqld port=3308 log-bin log ndbcluster ndb-connectstring=localhost [ndbd] connect-string=localhost [ndb_mgm] connect-string=localhost [ndb_mgmd] config-file=/Users/hirohama/data/ndb/config.ini
config.iniを設定
/Users/hirohama/data/ndb/config.ini
[NDBD DEFAULT] NoOfReplicas= 1 DataDir= /Users/hirohama/data/ndb [NDB_MGMD] Hostname= localhost DataDir= /Users/hirohama/data/ndb [NDBD] HostName= localhost [MYSQLD] [MYSQLD]
oc526605033:/usr/local/mysql-5.1.16-beta-osx10.4-i686/bin root# ./ndb_mgmd &
oc526605033:/usr/local/mysql-5.1.16-beta-osx10.4-i686/bin root# ./ndbd --initial
oc526605033:/usr/local/mysql-5.1.16-beta-osx10.4-i686/bin root# ./ndb_mgm
oc526605033:/usr/local/mysql-5.1.16-beta-osx10.4-i686/bin root# ./ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration
[ndbd(NDB)] 1 node(s) id=2 @127.0.0.1 (Version: 5.1.16, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s) id=1 @127.0.0.1 (Version: 5.1.16)
[mysqld(API)] 2 node(s) id=3 @127.0.0.1 (Version: 5.1.16) id=4 (not connected, accepting connect from any host)
root@localhost[(none)]> show engines; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 3 Current database: *** NONE ***
+------------+---------+----------------------------------------------------------------+--------------+-----+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+----------------------------------------------------------------+--------------+-----+------------+ | ndbcluster | YES | Clustered, fault-tolerant tables | YES | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | FEDERATED | YES | Federated MySQL storage engine | YES | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +------------+---------+----------------------------------------------------------------+--------------+-----+------------+ 9 rows in set (0.00 sec)
root@localhost[test]> create table ndb_t1(a int, b int)engine=ndb; Query OK, 0 rows affected (0.50 sec)
root@localhost[test]> show create table ndb_t1; +--------+---------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------+---------------------------------------------------------------------------------------------------------------------------+ | ndb_t1 | CREATE TABLE `ndb_t1` (
`a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 | +--------+---------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)
root@localhost[test]> insert into ndb_t1 values(1,1); Query OK, 1 row affected (0.01 sec)
root@localhost[test]> select * from t1; +------+------+ | a | b | +------+------+ | 1 | 1 | +------+------+ 1 row in set (0.00 sec)
root@localhost[test]> select * from ndb_t1; +------+------+ | a | b | +------+------+ | 1 | 1 | +------+------+ 1 row in set (0.00 sec)
注意事項
MySQL Cluster 5.xでは物理メモリ以上のデータを扱うことが出来ない。
config.ini設定の困難
DataMemoryとIndexMemoryの算出
データ格納用とインデックス格納用にDataMemoryとIndexMemoryを設定しなくてはならない。 物理メモリのどれくらいを、データ用に、インデックス用に利用するかを決める。 MySQLの開発者が公開しているスクリプトは目安にはなるが、decimal型をスキップする、実際に必要とされるメモリ量よりはるかに小さく見積もる。 そのため、これらのパラメータ設定はトライ&エラー、または手でテーブル毎に計算する必要がある。
データの格納にあたって、LOAD DATA INFILEや、他のテーブルからALTER TABLEなどを利用しようとすると、大量のトランザクションとして扱われるためにエラーで落ちる。 データ挿入にはAUTOCOMMIT=ONにして、一行ずつ入れる必要がある。
もしデータを首尾良くMySQL Clusterに格納する事に成功すると、現在はManagement ConsoleよりALL DUMP 1000コマンドで、どれくらいメモリがデータ格納用、インデックス格納用に使用されているか分かる。
DataMemoryやIndexMemoryなどの設定で、物理メモリ以上のメモリを要求するパラメータを設定した場合はData Nodeが立ち上がらない。
MaxNoOfConcurrentTransactionsとMaxNoOfConcurrentOperations
ちゃんと設定しましょう。
Tips
障害発生後Data Nodeが起動しない
Data NodeやSQL Nodeを動かしているサーバでハードウェア障害や電源障害でダウンした場合、再起動してData Nodeを起動しても
Could not alloc node id at c1 port 1186: No free node id found for mysqld(API).
のようなエラーが出て起動出来ない場合は
Management Consoleより"PURGE STALE SESSIONS"コマンドを発行する
必要がある。次期バージョンでは改善希望。
行サイズの最大
MySQL Clusterは1行につき8Kが最大のサイズ だけどPKを指定しない場合はMySQL Clusterが内部で管理用にPKに代わるものを追加するので8Kの行はINSERT出来ない
設定ファイル
config.iniの主要パラメータは下記の通り。特に設定が難しいのは
- Data Memory
- Index Memory
- MaxNoOfConcurrentTransactions
- MaxNoOfConcurrentOperations
の4つ。
| 設定グループ | オプション | 説明 |
|---|---|---|
| [NDBD DEFAULT] | Data Nodeのデフォルト値を設定 | |
| NoOfReplicas | レプリカ数を指定 | |
| DataDir | ログなどの格納場所を指定 | |
| DataMemory | データ格納用に使用するメモリ量 | |
| IndexMemory | インデックス格納用に使用するメモリ量 | |
| TransactionDeadlockDetectionTimeout | Deadlock検知のタイムアウトを設定(ms) | |
| MaxNoOfConcurrentTransactions | 1つのSQL Nodeで実行可能な並行トランザクションの数 | |
| MaxNoOfConcurrentOperations | トランザクションでの同時更新レコード数 | |
| RedoBuffer | 1つのSQL Nodeで実行可能な並行トランザクションの数 |
インターコネクト
インターコネクトとは、ノード間通信のためのメディア及びプロトコルのこと。 MySQL Clusterではインターコネクトに
- Ethernet
- SCI
- Shared-Memory
を選択出来る。Shared-Memoryは検証していないので、EhternetとSCIについて下記に述べる。
Ethernet
通常のEthernetケーブルで接続する。 15.4.4.8. MySQL Cluster TCP/IP Connections Using Direct Connectionsのように記述する事で、例えばData Node間通信のみ別ネットワークで構成できる。 常識的に考えると、ネットワークを分けた方がパフォーマンスが上がりそうであるが、A2-4-2構成でのベンチマークの結果は、パフォーマンスの向上は無かった。
おまけに、4.1.14ではMySQL Bugs: #12942: MySQL Cluster doesn't response more than 4 minutesのように、「SQL NodeとData Node間のインターコネクト障害」と「UPDATEクエリ発行」を「同時」に行うと約4分間応答が無く、4分後にエラーなどを返さずに処理を続行してしまうという制限がある。いつの間にか15.8. Known Limitations of MySQL Clusterに追記されていた。
Multiple network interfaces for data nodes are not supported. Use of these is liable to cause problems because, in the event of a data node failure, an SQL node waits for confirmation that the data node went down but never receives it since another route to that data node remains open. This can effectively make the cluster inoperable.
よってEthernetを使う場合はネットワークは1つのみで構成するべきで、インターコネクトの冗長化を目指すのであれば、SCIの使用を考える。
SCI Socket
MySQL Clusterでは、SCI Socket利用に際して特別な設定は必要無く、MAX Binaryで良い。
設定方法は、
- 正しくSCI Socketドライバーをインストール
- ケーブルで接続
- export LD_PRELOAD=/opt/DIS/lib/libkscisock.soなどとして環境変数を設定
SCI Socketで通信が行われていることを確認するには watch cat /proc/net/af_sci/stats などとして確認する。
4.1.14では、Data Node上ではSCI Socket通信を確認出来たが、SQL Node上では確認出来なかった。 どうやらData NodeとSQL Node間通信はEthernetを使う様子。 MySQL社の開発者曰く、「もし記憶が正しければ、(Ethernetで通信するように)ソースに埋め込んだかも」 SCIの開発元曰く、「SCI Socketでの接続より先にMySQL Clusterが接続を開始するからかな?」 どちらも怪しい。
SCI Transporter
設定方法は、SCI Socketの手順に加えて、
- SCI Node IDを設定
- MySQLのソースコードをダウンロードして、with-ndb-sci=/opt/DISオプションを付けてコンパイル
Data Node間通信のみSCI Transporterで構成し、その他の設定は通常のEthernetを使う場合と同等。
残念ながら、 SCI Socketで通信が行われていることを確認する事は不可能
制限事項としてSCI Transporterを利用する設定でData Nodeプロセスを起動すると、延々とCPUリソースを使い続けるのでSingle CPU環境でのSCI Transporter使用は推奨されない。
SCI TransporterをData Node - SQL Node通信には推奨していない理由
Data Nodes shift a *lot* of data between themselves during the process of executing queries. Particularly in the more recent versions, there is far less data transfered between SQL and Data Nodes. It therefore makes sense to connect Data nodes via expensive SCI Transporters and use standard gigabit ethernet for SQL nodes. Of course you *can* use SCI for all nodes but the margional increase in performance is unlikely to be worth the financial cost and hastle.
By Alex(開発者にあらず)
納得いかないので、その旨メール。
Because in the tests using SCI Transporter in SQL Nodes I did in some tests get 10x worse performance than with SCI Sockets. In most tests it worked ok but it still uses a CPU 100% of the time only for communication so this is another reason of not using it in SQL Nodes. In Data Nodes it handles communication and execution in same thread so thus much more efficient.
By 開発者
納得。
SCI利用するときはHT ONにすると問題があるって本当?
No - there is no general problems using Intel Hyper Threading and SCI. We have on customer support case where turning off Hyper Threading seems to solve a problem, but this is most likely due to some special issues with that system. Many people reports that Hyper Threading has little or no effect on their application. Modern compilers are very good at optimizing CPU resource usage.
By 開発者
SCI
SCI(Scalable Coherent Interface)はIEEE1596-1992にて定義された通信規格で、ハイパフォーマンスクラスタリングや科学技術計算用のクラスタリングシステムで多く採用されている。 通信には専用のハードウェア及びドライバーが必要で、ネットワークトポロジはリング型及びスイッチを利用したスター型をサポートしている。
IRM(Interconnect Resource Manager)
最も低レベルのレイヤー SCI Cardや接続構成の初期設定、SCI Cardのリソース管理に対する機能を提供
SISCI(Software Infrastructure for SCI)
プログラマー用のAPIレイヤーででC言語のインタフェースを提供
現在はIRMとSISCIのドライバは一緒に提供されている
SCI SOCKET(Dolphin SuperSockets)
UNIX互換のBSD socketプログラミングを可能とするAPIレイヤー
SCI関連ドライバのダウンロード
ユーザ登録後Dolphin Interconnect Solutions Inc. - Downloadsより下記をダウンロードする。下にあるファイルが最新なのは、ちょっと分かりにくい。
- Dolphin SCI Cluster Software Source package (DISsp) (IRM and SISCI drivers)
- Dolphin SCI SOCKET (Linux) Source package
SCI Socketは、3.0.0以降で透過的なフェイルオーバをサポートしている。
SCIをインターコネクトに利用した場合のHA機能
excelファイル版はsci ha feature
MySQL Cluster 4.1.14(2005/9/28最新)では、SCI Cardをインターコネクトに利用した場合のHA機能(フェイルオーバーサポート)は、
- SCI 1D Cardを各サーバに二枚ずつ差してSCI Switchを二つ用意してSCI Transporterで接続
- SCI 2D Cardを各サーバに一枚ずつ差して、最新のドライバをインストールする事でMySQL Clusterから透過的なフェイルオーバーをサポート
の二通り
1. は実機では未確認。但しMySQL Clusterの開発責任者のMikael氏談。MySQL Cluster側でのインターコネクト設定例はhttp://dev.mysql.com/doc/mysql/en/mysql-cluster-sci-definition.html
2. は実際のシステムでは あり得ない設定で稼働を確認した
設定方法は
- 最新のドライバ(3.0.0)を使用
- SCI Interconnect Mangerのハートビート(リフレッシュ)間隔を60秒から10秒に変更
- auto rerouteをnoからyesへ変更
- MySQL Clusterのconfig.iniファイルでHeartbeatIntervalDbDbをデフォルトの1.5秒から20秒へ変更
但し、MySQL ClusterのData Node間のハートビート間隔を20秒にしてしまうと、三回のハートビート失敗でノードが死んでいると認識するので、ノードが死んでから再構成に最短で20秒×3回=60秒、最長で20秒×4=80秒かかってしまい、その間処理を受け付けなくなる。
と書いてたら、ドライバをアップデートしたらしい。(2005/10/05)
We have just uploaded a new release candidate of DISsp 3.0.2 - it contains some minor fixes and : -optimized routing algorithm -The ability to set the SCI Iinterconnect Mangere refresh interval down to 1 sec. Our next release will also contain even quicker rerouting ( optimized SCI Interconnect Manger )
さらにドキュメントアップロード(2005/10/14) [4]
その他
DataMemoryとIndexMemoryの見積
ndb_size.pl
接続先テーブルのストレージエンジンは問わない 未だ完成版では無い
改良版
- 出力例
http://www.hirohama.biz/wp/wp-content/dbt1.html
- 改良版の出力例
http://www.hirohama.biz/wp/wp-content/dbt1b.html
| DataMemory Usage (kb) by ndb_size.pl | IndexMemory Usage (kb) by ndb_size.pl | SUM | |
|---|---|---|---|
| address | 1,047,328 | 282,712 | |
| author | 896 | 128 | |
| best_sellers | 0 | 0 | |
| cc_xacts | 234,400 | 63,440 | |
| country | 0 | 0 | |
| customer | 908,832 | 98,968 | |
| i_related | 0 | 0 | |
| item | 5,536 | 992 | |
| new_products | 0 | 0 | |
| order_line | 968,096 | 190,216 | |
| orders | 211,136 | 127,264 | |
| search_results_subject | 0 | 0 | |
| shopping_cart | 128 | 48 | |
| shopping_cart_line | 192 | 48 | |
| SUM | 3,376,544 | 763,816 | 4,140,360 |
上記例ではおおよそ4GBくらい。但しdecimalがカウントされていない。
dumpコマンド
Management Nodeにて下記コマンド発行するとクラスタログに実際にデータ格納に使用しているメモリ量が表示される
- all dump 1000
- 出力例
2005-11-11 15:07:07 [MgmSrvr] INFO -- Node 2: Data usage is 95%(229020 32K pages of total 240000) 2005-11-11 15:07:07 [MgmSrvr] INFO -- Node 2: Index usage is 92%(35609 8K pages of total 38432)
デフォルト設定でDataMemoryやIndexMemory以外に消費されるメモリ
- 150MBくらい
by Mikael at ML
各カラムタイプが消費する領域
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
As of MySQL 5.0.3, the NDBCLUSTER engine supports only fixed-width columns. This means that a VARCHAR column from a table in a MySQL Cluster will behave almost as if it were of type CHAR (except that each record still has one extra byte overhead). For example, in a Cluster table, each record in a column declared as VARCHAR(100) will take up 101 bytes for storage, regardless of the length of the string actually stored in any given record. ---- NDBCLUSTERエンジンでは固定長のカラムしか扱えないのでvarcharはcharの如く振る舞う。 例えばVARCHAR(100)は実際に入っているデータの長さに関係無く101バイト消費する。
TEXT and BLOB columns are implemented differently in the NDB Cluster storage engine, wherein each record in a TEXT column is made up of two separate parts. One of these is of fixed size (256 bytes), and is actually stored in the original table. The other consists of any data in excess of 256 bytes, which stored in a hidden table. The records in this second table are always 2,000 bytes long. This means that the size of a TEXT column is 256 if size <= 256 (where size represents the size of the record); otherwise, the size is 256 + size + (2000 - (size - 256) % 2000). ---- text/blobは256の固定長 256以上のサイズの場合は、上記式で求める
MySQL Clusterのサービス継続性
Data Nodeダウン時と再起同時に5秒ほど処理を受け付けない。
マニュアルによると、ハートビート間隔1.5秒、3回ロストするとノードが死んでいると解釈するので、最小で 1.5 * 3 = 4.5秒 ですが、チェックした直後に障害が発生したと仮定すると、 1.5 * 4 = 6.0秒 ですので、5秒くらいの空白というのは、理にかなっていそう。
サーバとクライアントでバージョンが違う場合(perlなどの実行時)
MySQLは4.1系から認証アルゴリズムが変わっているので、4.1以前と以後とで、サーバが4.1以降でクライアントが4.1以前の場合は、下記オプションでサーバを旧式で起動させる必要がある。
mysql> set password for 'root'@'localhost' = OLD_PASSWORD('password');
shell> /usr/local/mysql/bin/mysqld_safe --old-passwords &
事例
日本での事例
- カレンダぴ by Acorn Software Technologies: 構成図なども掲載
海外での事例
- 8x8: アメリカのIP電話サービス会社
- イタリアのイエローページサイト: NDB APIで実装
- フランスの銀行:株式取引
- 通信会社アルカテル社:位置情報管理
- エリクソン:テレコムアプリケーション
- 飛行機チケットやホテルなどの予約サイトswiss.com:JBossとMySQL Clusterの組み合わせを二台のサーバで運用
リンク
MySQL CLuster関連
MySQL社によるもの
- http://dev.mysql.com/doc/mysql/en/ndbcluster.html
- http://lists.mysql.com/cluster
- http://forums.mysql.com/list.php?25
- http://dev.mysql.com/doc/ndbapi/en/index.html
開発者によるブログ
- Mikael Ronstrom: MySQL Clusterの生みの親。長身。あまり人前では話したがらない。
- Ramblings: オーストラリア在住でMySQL買収後に開発に参加
- Johan Andersson's Blog: NDBの頃からの開発者。SCIとかも詳しい。スキンヘッドだった。
その他
- 日本OSS推進フォーラム:「DB層~DBMSクラスタ評価編~」報告書の6章と8章でMySQL Clusterについて言及しました。
- http://hogehoge.que.jp/thh4601/wiki/index.php?MySQLCluster
- http://www.davz.net/
- http://blog.thinkphp.de/archives/77-MySQL-Cluster-and-RegEx-slides.html
- http://lists.mysql.com/mysql-ja/149
- Connectors for the NdbApi:各種言語用のNDB APIラッパー(作者のブログ)
- mod_ndb:NDB APIを使ってData Nodeへ直接アクセスするApacheモジュール
書籍
- MySQL Clustering: 唯一の書籍で、Web上に散在(具体的にはオンラインマニュアルとMLに散らばっている)している情報がまとまっていてお勧め。
雑誌
- JAVA PRESS Vol.42(2005年4月著者校正完了、2005年6月発行):PDF版([8], [9])とHTML版(MySQL Cluster Architecture)があります。
- Software Design 2006年9月号(2006年8月発売予定):「LVS+MySQL Clusterで構築するスケーラブルLAMPシステムの構築と運用」
展示会/セッションなど
- MySQL Clusterによる負荷分散LAMPサーバ: オープンソースカンファレンス2006 HokkaidoにてMySQL Cluster関連のセッションがあるようです。SQL Nodeの可用性向上について詳しく説明されているようです。
