レプリケーション
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/09 08:43 UTC 版)
分散システム
レプリケーションは、分散システムには古くからある概念で、しかも重要である。
レプリケーション対象がデータであっても計算であっても、その目的は、入って来るイベントを処理するプロセス群を用意することである。データレプリケーションの場合、そのプロセス群は受動的であり、格納されたデータを維持し、要求に応じて読み出したり、更新したりする。計算レプリケーションの場合、その目的はフォールトトレラント性を持たせることにある。例えば複製されたサービスは、プライマリのコントローラが故障してもバックアップがその機能を引き継げると保証する目的で、電話の交換網の制御に使われるだろう。しかし、潜在的なニーズはどちらでも同じである。すなわち、複製が同じ順序で同じイベント列を見ると保証することによって全体として一貫性を保ち、どの複製でも要求に答えることができる。
レプリケーション・モデル
データレプリケーションには、それぞれに特徴の異なる以下のようなモデルが存在する。
- トランザクション・レプリケーション
- トランザクションデータ(データベースなどのトランザクション的ストレージ構造)のレプリケーションのモデル。この場合、単一コピー逐次化可能性モデルを使い、トランザクションシステムが保証すべきACID属性に従って、複製されたデータ上のトランザクションの結果を正しく定義する。
- 状態機械レプリケーション
- 複製された処理を決定性有限状態機械と看做し、全てのイベントのアトミックブロードキャストが可能であると看做すモデル。分散合意という分散処理全般における問題に基づき、トランザクション・レプリケーション・モデルとも大部分が共通である。誤って「動的レプリケーション」と同義に扱われることもある。
- 仮想同期
- 一群のプロセスが協力して、メモリ上のデータを複製したり、協調動作するモデル。「プロセスグループ」と呼ばれる分散システム上の概念を導入する。プロセスがプロセスグループに参加するのは、ファイルをオープンするのに似ている。プロセスがグループに追加されると、グループメンバーが複製したデータの現在状態を含むチェックポイントが提供される。グループ内のプロセスは互いにイベントをマルチキャストするが、その際に観測されるイベントの順序はどのプロセスからも同じであることが保証される。
どういったモデルを選択するかによって、性能は大きく変わる。単一コピー逐次化可能性を保証しようとすると、トランザクション・レプリケーションは最も遅くなる(性能を改善するには、ログベースのレプリケーションを採用することが考えられるが、ログの一部が障害によって失われると一貫性が保てなくなる)。仮想同期はこの中では最も高速だが、障害への対処はあまり厳密ではない。状態機械レプリケーションはこれらの中間である。
仮想同期モデルは、動的レプリケーションにも静的レプリケーションにも使える。一方、状態機械レプリケーションやトランザクション・レプリケーションは制約が多く、エンドユーザーがアクセスできない層に埋め込まれていることが多い[要出典]。
固有名詞の分類
- レプリケーションのページへのリンク