以下の用語は MySQL Cluster の理解あるいは MySQL Cluster に関する特別な意味を持ちます。
クラスタ:
一般的な意味は、クラスタはユニットで動作する一連のコンピュータで 1 つのタスクを実行するために一緒に作業します。
NDB
Cluster
:
これは MySQL のストレージ エンジンでいくつかのコンピュータを束ねてデータ ストレージ、検索、および管理を行うためのものです。
MySQL Cluster:
これは NDB
ストレージ
エンジンを使用した一群のコンピュータが一緒に作業して、in-memory
storage を使用して
アーキテクチャを共有しない構成で分散型
MySQL
データベースをサポートすることを意味します。
設定ファイル:
テキスト ファイルで命令およびクラスタ、そのホスト、およびそのノードに関する情報を含んでいます。これらはクラスタが起動したときにクラスタのマネジメント ノードで読み込まれます。詳細は 項14.4.4. 「設定ファイル」 を参照してください。
Backup:
クラスタ、トランザクションおよびログの完全なコピーで、ディスクあるいは他の長期使用のストレージに保存されます。
復旧:
クラスタをバックアップで保存した前の状態に戻します。
チェックポイント:
一般的には、データがディスクの保存された場合、チェックポイントに達したと言われています。クラスタに特化した場合には、すべての実行されたトランザクションがディスクに時宜をえて保存された時点を意味します。NDB
ストレージ エンジンに関しては、2
種類のチェックポイントがありそれが共同して安定したクラスタの表示を維持します。
ローカル チェックポイント (LCP):
これは 1 つのノードに特化したチェックポイントですが、LCP はクラスタではほぼ同時にすべてのノードで行われます。LCP はノードのすべてのデータのディスクへの保存に関わり、通常は数分間隔でそれを実行します。この正確な間隔はノードで保存されるデータ量、クラスタの作業量、および他の要因によってばらつきがあります。
グローバル チェックポイント (GCP):
GCP はすべてのノードのトランザクションの同期および redo-log のディスクへのフラッシュ時に数秒毎に実行されます。
クラスタ ホスト:
MySQL Cluster の一部を構成するコンピュータ。クラスタには物理構成と論理構成の両方があります。物理的には、クラスタ ホスト (あるいはもっ単に ホスト) と呼ばれる多くのコンピュータで構成されます。以下のノードおよびノード グループを参照してください。
ノード:
これは MySQL Cluster の論理および関数単位に関するもので、クラスタ ノード とも呼ばれます。MySQL Cluster の説明では、「ノート」 用語をクラスタの物理コンポーネントよりはむしろプロセスとして使用しています。MySQL Cluster の構築するには 3 種類のノードが必要です。
マネジメント (MGM) ノード:
MySQL Cluster の他のノードを管理します。それは他のノードに設定データ、つまりノードの起動および停止、ネットワークのパーティショニングの取扱い、バックアップの作成およびその保存などの設定データを提供します。
SQL (MySQL サーバー) ノード:
MySQL サーバーのインスタンスで、クラスタの データ ノード に保持されたデータへのフロントエンドの役割を果たします。データを保存、抽出、あるいは更新を希望するクライアントは他の MySQL サーバーにアクセスするように SQL ノードにアクセスし、通常の認証手法および API を使用し、ノード グループ間のデータの配布をユーザーやアプリケーションに透明にします。SQL ノードは異なるデータ ノードあるいはホスト間のデータの配布には関係なくクラスタのデータベース全体にアクセスします。
データ ノード:
これらのノードが実際のデータを保存します。テーブル データのフラグメントは一連のノード グループに保存されます。各ノード グループはテーブル データの異なるサブセットを保存します。ノード グループを構成する各ノードはノード グループが担当するフラグメントのコピーを保存します。現在は 1 つのクラスタは合計で 48 データ ノードまでサポートしています。
1 つ以上のノードが 1 台のマシンに共存できます。(実際は、1 台のマシンに完全なクラスタを構築できますが、これを実際の生産環境で使用しようとは思わないでしょう。MySQL Cluster で作業するとき、用語のホストはクラスタの物理コンポーネントで、一方ノード は論理あるいは機能のコンポーネント (つまり、プロセス) を覚えておくと便利です。
用語に関する備考:旧バージョンの MySQL Cluster の説明書では、データ ノードを 「データベース ノード」 を書いていたこともあります。「ストレージ ノード」 の用語を使っていたときもあります。さらに、SQL ノードを 「クライアント ノード」 と呼んだときもあります。.古い用語は混乱を避けるために使われなくなってきており、その意味においては使わないほうがいいでしょう。それらはまた 「API ノード」 とも言われます — SQL ノードは実際はクラスタへの API ノードのインターフェースを提供します。
ノード グループ:
一連のデータ ノードノード グループのすべてのデータ ノードは同じデータ (フラグメント) を含みます。そして 1 つのグループのすべてのノードは異なるホストに常駐する必要があります。どのノードがどのノード グループに属するか管理できます。
詳細は、項14.2.1. 「MySQL Cluster ノード、ノード グループ、レプリカ、およびパーテッション」 を参照してください。
ノード不具合:
MySQL Cluster はクラスタを構成する 1 つのノードのだけに依存している訳ではないので、クラスタは 1 つ以上のノードが失敗しても動作を続けます。所定のクラスタが耐えられるノードの不具合の正確な数はノード数およびクラスタの構成によります。
ノードの再起動:
失敗したクラスタ ノードの再起動プロセス
内部ノードの再起動:
ファイルシステムを削除したクラスタ ノードの起動プロセス。これはソフトウェアのアップグレードおよび他の特殊な環境でたまに使用されます。
システム クラッシュ (あるいは システム不具合):
これは多くのクラスタ ノードに不具合が発生してクラスタがそれ以上耐えられなくなると起こります。
システムの再起動:
クラスタの再起動およびディスクのログおよびチェックポイントからの初期化のプロセスです。これはクラスタの予定されたあるいは予定外のシャットダウンの後に必要になります。
フラグメント:
データベース
テーブルの一部で、NDB
ストレージ
エンジンでは、テーブルは分割されたくさんのフラグメントで保存されます。フラグメントはたまに
「パーティション」
とも呼ばれます。しかし、「フラグメント」
のほうが好ましい用語です。テーブルは
マシンとノード間の負荷分散のために MySQL
Cluster
クラスタでフラグメント化(分割)されます。
レプリカ:
NDB
ストレージ
エンジンでは、各テーブルのフラグメントは冗長性を提供するために他のデータで保存された多くのレプリカ(コピー)保持します。現在は、フラグメント毎に
4 つのレプリカがあります。
トランスポーター:
ノード間のデータ伝送を提供するプロトコルです。MySQL Cluster は現在 4 種類のトランスポーター接続をサポートしています。
TCP/IP
これは、勿論、馴染みのネットワーク プロトコルでインターネット上の HTTP、FTP (など) を基礎をなすものです。TCP/IP はローカルおよびリモート接続の両方に使用できます。
SCI
スケーラブル コヒーラント インターフェースはマルチプロセッサ システムおよび並列処理アプリケーションを構築する高速のプロトコルです。SCI を MySQL Cluster で使用するには 項14.12.1. 「SCI ソケットを使用するための MySQL Cluster の設定」 で説明した特別なハードウェアが必要です。SCI に関する基本的な説明は this essay at dolphinics.com を参照してください。
SHM
Unix-style のshared
memory
セグメントです。サポートされている場合、SHM
は同じホストで動作しているノードを自動的に接続するために使用します。この件に関する詳細な情報を得るにはUnix
man page for shmop(2)
が最適です。
注:クラスタのトランスポーターはクラスタに対しては内部的です。MySQL Cluster を使用したアプリケーションは SQL ノードとれらが他のバージョンの MySQL サーバー (TCP/IP 経由、あるいは Unix のソケット ファイルあるいは Windows パイプ) と同じように通信します。クエリが送られ標準の MySQL クライアント API を使用して結果を取り出します。
NDB
:
これは Network
Database
のことで、MySQL Cluster
を使用するためのストレージ
エンジンのことです。NDB
ストレージ エンジンはすべての通常の MySQL
データ タイプおよび SQL
ステートメントをサポートし、ACID
に準拠しています。このエンジンはまたトランザクション
(実行およびロールバック) をフル
サポートしています。
非共有アーキテクチャ:
MySQL Cluster の理想緒的なアーキテクチャです。それはまさに何も共有しない設定で、各ノードは個別のホストで動作します。そのような配列の利点はどのホストやノードもシングル ポイントの不具合あるいは全体としてシステムのパフォーマンスのボトルネックになり得ないということです。
In-memory ストレージ:
各データ ノードに格納されたすべてのデータはノードのホスト コンピュータのメモリに保持されます。クラスタの各データ ノードには、データベースにレプリカを乗算し、それをデータ ノードで除算した数に相当する RAM 容量を持つ必要があります。このように、データベースのメモリが 1GB で、クラスタを 4 つのレプリカと 8 つのでーた ノードで構成する場合、メモリはノード毎に最低 500MB 必要になります。これはオペレーティング システムおよびホストで動作する他のアプリケーションが必要とするメモリに追加されます。
MySQL 5.1 では、非印インデックス カラムがディスクで保存される ディスク データ も作成でき、このようにクラスタが必要とするメモリ容量を減らすことができます。インデックスおよびインデックスを付したカラムはそのまま RAM に保持されます。項14.11. 「MySQL Cluster ディスク データ ストレージ」 参照。
テーブル:
リレーショナル データベースの場合と同様、用語の 「テーブル」 は全く同一に構成されたレコードを意味します。MySQL Cluster では、データベースのテーブルは一連のフラグメントとしてデータ ノードに保持され、それらはそれぞれ追加されたデータ ノードでレプリケートされます。データ ノードのセットは同じフラグメントをレプリケートしあるいはフラグメントのセットは ノード グループ として言及されます。
Cluster のプログラム:
これらは MySQL の動作、設定、管理に使用されるコマンドラインのプログラムです。それらにはサーバーのデーモン(daemons)が含まれます。:
ndbd:
データ ノード デーモン (データ ノードのプロセスを実行します)
ndb_mgmd:
マネジメント サーバーデーモン(マネジメント サーバーのプロセスを実行します)
およびクライアント プログラム:
ndb_mgm:
マネジメント クライアント (マネジメント コマンドを実行するためのインターフェースを提供します)
ndb_waiter:
クラスタのすべてのノードの状態を検証するために使用します。
ndb_restore:
バックアップからのクラスタのデータの復旧
これらのプログラムおよびそれらの使用法については 項14.6. 「MySQL Cluster のプロセス管理」 を参照してください。.
イベント ログ:
MySQL Cluster はイベントをカテゴリ (起動、シャットダウン、エラー、チェックポイントなど)、優先順位、および重要度別のログに記録します。レポートする (記録に残す) すべてのイベントの完全なリストは 項14.7.3. 「MySQL Cluster で生成されたイベント レポート」 にあります。イベント ログは 2種類あります。
クラスタ ログ:
クラスタの全体に関するレポートを希望するイベントのレコードを維持します。
ノード ログ:
各個別のノードを記録した個別のログ
通常の環境では、クラスタ ログのみの維持管理が必要でまたそれで十分です。ノード ログはアプリケーションの開発およびデバッグ処理にのみ使用されます。