一貫性モデル (ソフトウェア)
パイプラインRAM整合性(PRAM整合性)は、1988年にLiptonとSandbergによって最初に記述された一貫性(整合性)モデルの1つとして発表された。非公式な定義のため、実際には少なくとも2つの微妙に異なる実装があり、1つはAhamadらによるもの、もう1つはMosbergerによる。
PRAM一貫性では、すべてのプロセスが、あるプロセスの操作を、そのプロセスが発行したのと同じ順序で見るが、異なるプロセスが発行した操作は、異なるプロセスから異なる順序で見ることができる。PRAMの一貫性は、プロセッサの一貫性よりも弱い。PRAMでは、ある場所へのコヒーレンスをそのプロセッサ全体で維持する必要性が緩和されている。ここでは、任意の変数への読み出しは、プロセッサ内で書き込みの前に実行することができる。このモデルでは、書き込み前の読み取り、読み取り後の読み取り、書き込み前の書き込みの順序は維持される。
Hutto and Ahamad, 1990により定義された因果整合性は、因果関係のある操作とそうでない操作を区別することで、逐次整合性よりも弱い整合性モデルである。例えば、ある事象bがそれ以前の事象aから影響を受ける場合、因果的整合性は、すべてのプロセスが事象aの後に事象bを見ることを保証する。
Tanenbaum et al., 2007では、以下の条件でデータストアが因果的に一貫しているとみなされると定義しています。
因果関係がある可能性のある書き込みは、すべてのプロセスで同じ順序で見られなければならない。同時書き込みは異なるマシンでは異なる順序で見られる可能性がある。
ローカル一貫性(局所整合性)では、各プロセスは自分のプログラムで定義された順序で自分の操作を行う。他のプロセスの書き込み操作がどのような順序で行われるかについては、何の制約もない。ローカルコンシステンシーは、共有メモリシステムにおいて最も弱いコンシステンシーモデルである。