マルチキャストを用いたノードの自動追加処理
Kokolink Replicationでは、ユーザは単にサーバを起動するだけでレプリケーション・システムを起動できます。起動したサーバは自分で他のサーバを探索し、その結果に応じて 自分の役割を判断し、レプリケーション・システムを開始します。ユーザは自分のサーバの役割を指定する必要はありませんし、相手サーバのIPアドレスを指 定する必要すらありません。
また、起動の際には、サーバ間で必要な通信を行い、データベースが稼動中でも整合性を失わないように、適切な同期処理を行います。すでに稼動中のサーバでの処理をとめることなく、レプリケーション・システムを構築できます。
サーバを起動すると、サーバはマルチキャストを利用して、ネットワーク上にすでにKokolink Replicationのサーバが存在しているかを確認します。
フェーズ1:マルチキャストによる既存サーバの探索
ネットワーク上に単独運用モードのサーバが存在している場合、そのサーバがマルチキャストに対して返答を返します。この結果、先に起動していたサーバが自動的にマスタとなり、後から起動したサーバは自動的にスレーブとなります。
マスタとスレーブは、rsyncを用いて、データベース・ディレクトリの内容を同期します。同期の際には、同期中にデータベースの変更が行われても整合性を失わないように、適当なタイミングでチェックポイントが実行されます。
フェーズ2:既存サーバからの返答と自動同期処理
データベース・ディレクトリの同期が完了すると、自動的にレプリケーションを開始します。同期中のデータベースの変更を反映するため、チェックポイントが実行した時点から後のライトセットを順次実行していきます。
フェーズ3:同期処理の終了とレプリケーションの開始