MySQL Clusterのデータノードであるndbd(もしくはndbmtd)プロセスは、内部的にはマルチプルステートマシン(ブロック)がシグナル(もしくはメッセージ)を交換するという構造になっており、高い同時実行性を実現しているということについては前回述べた通りである。今日は、ndbd内部にどのようなカーネルブロックが存在するかということについて大まかに説明しよう。前回の話を踏まえて読んで頂ければ、何となくイメージだけでも掴めるのではないかと思う。まずは次の絵を見て頂きたい。これは俺の脳内から引っ張り出したndbdの構造のイメージ図である。 矢印はブロック同士の相関関係(シグナルの送受信など)を示すのだが、この絵に描かれているものは非常に省略されたものであり、実際にはもっと複雑に絡み合っているのだということを覚えておいて欲しい。例えばQMGRやDBDICTといったブロックは、他のブロック
![MySQL Clusterカーネルの中身を覗いてみよう。](https://cdn-ak-scissors.b.st-hatena.com/image/square/cc2f7cc379af79af68092da47878e55be0075f08/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEiOWhFxlQ01Q1le115XFbkwgEb96ih0IDG5o5Ntyj-FBkLq9HyWcXn8ETobULxfxeJo5-qKdE14DvaHXQn6jjehTVOBEgO_jbq0Fnn3C2pSBBIqWLg9eg6SpxKRJu8AfWqsHpTMEm56msg%2Fw1200-h630-p-k-no-nu%2FScreen%2Bshot%2B2009-10-23%2Bat%2B7.45.24%2BAM.png)