[h2db]クラスタリング

  h2database

サーバモード限定。非常に簡素だがクラスタリングをサポートしている。組込みモードは対象外。

  • サーバは2台固定。
  • 参照系クエリは1番目ノードに、それ以外のクエリは両方のノードに対して実行される。結果が不定なランダム関数はノード毎に違う値が発生するので注意が必要。

ノード1が停止してもノード2が生きていれば使い続けられるが、その後ノード1が復活したとしてもノード2へ向いた接続はそのままなので、次にノード2が停止すると接続が切れてしまう。

正→副への切り替えは自動で行われるが、副→正への切り替えは出来ない。再接続しなくてはならない。

乱数のようなサーバによって結果が変わるような関数は、INSERTやUPDATEに使用するとデータに差が生じてしまう。シーケンス値のオートインクリメントやID列も同様の理由で使用してはいけない。手動でシーケンス値を要求して、その値を持って更新を行う必要がある。

正直、制約が多くて不便。微妙な感じです。

Clustering / High Availability
This database supports a simple clustering / high availability mechanism.

http://h2database.com/html/advanced.html#clustering

クラスタの検出SQL

SELECT VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME='CLUSTER'

LEAVE A COMMENT