11. レプリケーションに追加する項目

複製しようと思っていた項目が複製されていなかったことに気づくことがあるかもしれません。

適切に容易に対処されなければなりません。

現在複製を行っているレプリケーションセットにテーブルとシーケンスを追加する目的で直接 slonik SET ADD TABLE もしくは SET ADD SEQUENCE を使用してはいけません。その代わりに新規のレプリケーションセットを作成します。一度、等しく読み出しが完了すると(例えば、提供元と読み込み先がマージされるそのセットが全く同一となる) MERGE SET を使用してセットは併合されます。

1.0.2 を含むそれ以前のバージョンでは、他の読み込みに関連する事象が未確定の場合に MERGE SET が発行されると潜在的な問題を引き起こす可能性があり、他の項目が未確定になっているノードで混乱を起こしかねませんでした。この問題点は 1.0.5 で解消されました。

ノードを追加する場合、どのように他のノードと通信するかを示す STORE PATH 命令文と、その結果の"通信ネットワーク"を構成する STORE LISTEN 命令文の2つを追加しなければなりません。

このような追加にあたっては熟考が必要です。たとえば、1つの slonik スクリプトである特定のセットに対し複数の複製要求を発行する場合です。もしどうしてもこれを自動化したいのなら、次の要求を出す前に slonik スクリプトが1つの複製処理を完了するまで待機するように、複製要求間に WAIT FOR EVENT スクリプトを発行したいと考えるかも知れません。

とは言っても一般的には、次の処理に向かう前に1つの更新が問題なく処理されるように複数ノードの再構成に対応したほうがより簡便です。