一貫性モデル (ソフトウェア)
結果整合性(一貫性)は、同時更新のないシステムにおける弱い整合性(一貫性)モデルである。これは、更新がない状態が非常に長い時間続くと、すべてのレプリカが最終的に一貫性を持つようになることを定義している。
ほとんどの共有分散型データベースは、BASE:基本的に利用可能、ソフトな状態、最終的に一貫性がある、またはACIDとBASEを組み合わせたSALT:逐次的、合意された、導かれた、改ざんされない、また、対称的、管理者なし、導かれた、時間的に合意された、のいずれかの最終的な一貫性モデルを持っている。
一般的な一貫性では、すべてのプロセスの書き込みが完了した後、メモリ位置のすべてのコピーが最終的に同一になる。
データ中心の一貫性(整合性)モデルの目的はプロセスが並行して更新を行う可能性のあるデータストアに一貫したビューを提供することである。重要なデータ中心一貫性モデルの1つに、Lamport (1979) によって定義された逐次一貫性がある。Tanenbaum et al(2007)は、逐次一貫性を以下の条件で定義している。
任意の実行結果は,データストア上のすべてのプロセスによる(読み書きの)操作が何らかの順序で実行され,個々のプロセスの操作がそのプログラムで指定された順序でこの順序に現れる場合と同じである。
Adve and Gharachorloo, 1996は,逐次整合性を実現するための要件として,プログラムの順序と書き込みの不可分性の2つを定義している.
プログラムオーダー:各プロセスがメモリ要求をプログラムの順番で発行することを保証する。
書き込み不可分性:書き込みの不可分性は、メモリ要求が単一のFIFOキューの順序に基づいて処理される。
逐次整合性では、時間や最新の書き込み操作という概念はない。すべてのプロセスで同じように、いくつかの操作のインターリーブがある。あるプロセスは、すべてのプロセスの書き込み操作を見ることができるが、自分の読み取り操作を見ることができるだけである。
線形化可能性(不可分メモリ)は、各操作の開始時刻と終了時刻を考慮することにより、実時間制約のある逐次一貫性として定義できる。各操作の開始時刻と終了時刻の間に点を置くことにより、各操作が線形化可能な順序で行われ、逐次的な一貫性が保証される場合、実行は線形化可能である。