レプリケーション
複製された処理を決定性有限状態機械と看做し、全てのイベントのアトミックブロードキャストが可能であると看做すモデル。分散合意という分散処理全般における問題に基づき、トランザクション・レプリケーション・モデルとも大部分が共通である。誤って「動的レプリケーション」と同義に扱われることもある。
データベースのレプリケーションは多くのデータベース管理システムが採用している概念で、データベースのオリジナルとコピーのマスタースレーブ関係を意味する。マスター側は更新を記録し、それがスレーブ群に通知される。スレーブ側は更新を正しく受け取ったというメッセージを送り、次の更新を受け付けられる状態であることを通知する。
マルチマスターレプリケーションでは、任意のデータベースノードに更新要求を送ることができ、そこから他のサーバに通知する。しかし、実際にはコストや複雑さの増大によって、この方式を採用できない場合もある。マルチマスターでの一般的課題として、トランザクションがかち合った場合の解決方法(あるいはかち合うのを防ぐ方法)がある。一般に、同期式レプリケーションではトランザクションの衝突を防ぐ方式をとるが、非同期式レプリケーションでは衝突を防ぐことはできず、何らかの方法で解決しなければならない。例えば、2つのノードで同時に1つのレコードが更新されたとき、先行レプリケーションではコミット以前に衝突を検出し、一方を中止させることができる。遅延レプリケーションの場合、両方がコミットされた後、再同期が行われたときに解決処理を施す。その場合、トランザクションのタイムスタンプに基づいて解決したり、ノードの優先順位に基づいて解決したり、もっと複雑な方式で解決する必要がある。
動的レプリケーションでは、同じ要求を全複製で処理する。静的レプリケーションでは、1つの要求は1つの複製で処理され、それによる状態変化を他の複製に転送する。ある時点で1つのマスター複製が選ばれ、全要求を処理する場合、これを「プライマリ/バックアップ」型(マスタースレーブ型)といい、高可用クラスターでよく使われる。一方、任意の複製が要求を処理して状態を分配する場合、これを「複数プライマリ」型(データベースではマルチマスターレプリケーション)と呼ぶ。複数プライマリ型では、何らかの分散並行性制御が必須であり、分散ロックマネージャなどが使われる。
負荷分散は、異なる計算タスクを複数マシンに分配するのであって、計算レプリケーションとは異なる。ただし、負荷分散ではデータを複数マシンで共有する必要があるため、データレプリケーションを内部で行っている。
バックアップは、長期に渡ってコピーを保持し続けるため、レプリケーションとは異なる。レプリケーションでは、データは頻繁に更新される。