replication
DBの内容をリアルアイム、または定期的に別のサーバに複製すること
データの冗長性や可用性を高め、負荷分散を実現する
データの更新 (write) を受け付け、変更内容をSlaveに転送する readも対応可能だが、負荷を軽減するため、Slaveが利用されることが多い
複数のSlaveを持つことができ、Slaveに対して非同期または同期的に変更を配信
Masterから送信された変更内容を受け取り、自身のDBに反映する 参照 (read) のみ対応し、更新 (write) は受け付けない
通常は複数のSlaveが、1つのMasterに接続される
主にデータの負荷分散や冗長性の確保を目的として使用される
GPT-4.icon
複数のMasterサーバーが存在し、それぞれが更新 (write) を受け付ける構成です。 データベースの可用性を高め、複数の地点での書き込みを可能にします。
特徴
書き込みが分散
複数のマスターに対して同時に書き込みが可能で、地理的に分散したシステムで有効。
データの整合性
競合 (conflict) の発生を防ぐ仕組みが必要。
一般的に、競合解決のポリシー(タイムスタンプや優先度)を設定する必要があります。
用途
地理的に分散したデータベースシステム。
高可用性が求められるシステム。
利用例
グローバルなサービス
複数の地域で同時にデータを書き込む必要があるシステム(例: ユーザーが世界中にいるソーシャルネットワーク)。
高可用性
マスターが1つダウンしても、他のマスターがサービスを継続できる。
サーバーがリング状に接続され、データが順番に各サーバーにレプリケートされる仕組みです。
特徴
データの流れ
各サーバーは自分に送られてきたデータを次のサーバーに転送します。
リング内の全サーバーが同期を保つよう設計されています。
可用性
リング内のサーバーが1台ダウンしても、他のサーバー間でデータが同期される。
競合のリスク
複数地点での更新を伴う場合、競合の管理が必要。
利用例
分散システム
地理的に分散したデータセンター間の同期。
部分的な可用性確保
システム全体のダウンを防ぎたいが、データ整合性の完璧さは求められないケース。
その他の特殊なレプリケーション方式
マスター → スレーブ → スレーブのように、スレーブがさらに別のスレーブにデータを伝播します。
データの流れが階層的になるため、拡張性が向上。
マルチマスターの一種。
すべてのマスターが同時に書き込みを受け付け、データを相互同期します。
より高度な競合解決が必要。
アクティブ-パッシブ構成
一部のマスターがアクティブ(稼働中)で、残りはパッシブ(待機中)。
障害時にパッシブマスターがアクティブ化。
RDBMSによってサポートしているレプリケーションの種類が異なる
e.g. MySQL v5は、非同期のレプリケーションをサポートしている
レプリケーションの仕組み
『サーバ/インフラを支える技術』.icon p.76
参考