因果整合性
因果関係のある一貫性モデルは、4つのセッション保証に集約できる。それらは以下のようにまとめられる。
Read Your Writes:あるプロセスが書き込みを実行した場合、同じプロセスが後でその書き込みの結果を観測する。
Monotonic Reads:あるプロセスが観測した(読んだ)書き込みの集合は、単調に非減少することが保証されている。
Writes Follow Reads:あるプロセスがリードの後にライトを実行し、別のプロセスがライトの結果を観測した場合、そのプロセスもリードを観測できる(上書きされていない限り)。
Monotonic Writes: あるプロセスが書き込みを行い、しばらくしてから別の書き込みを行った場合、他のプロセスは同じ順序でそれらを観測する。
Daudjee and Salemによって直列性とスナップショット分離のトランザクション・セッション保証が提示されている。
このアプローチにより,パーティション下での利用可能性が可能になる.
因果関係のメタデータには2つの一般的な表現方法がある。1つは、因果関係の依存関係グラフを明示的に保持する方法である。このようなグラフは恣意的に大きくなる可能性があるため、イベントにはその直前の前任者のみがタグ付けされることが多い。もう1つの方法は、プロセス(またはプロセスグループ)ごとに1つのエントリを持ち、そのプロセスまたはグループが生成したイベントの数をカウントするベクトルクロックを維持することである。この表現は固定サイズであり、イベントの順序はベクトルの単純な比較によって推測できる。
完全なピアツーピアシステムにおいて、どのイベントが依存していて、どのイベントが並行しているかを正確に判断するためには、メタデータのサイズは少なくともアクティブなライターの数に比例する。しかし、並行性を正確に判断することは、一般的にはやりすぎである。因果関係の一貫性は、因果関係に依存するイベントが順番に配信されることだけを必要とし、2つの同時イベントが最終的に順番になることは重要ではない。そのため、安全な近似技術を用いることで、サイズを任意に小さくすることができる。限界では、同時性を排除しても、単一のスカラ(ランポート・クロック)で十分である。また通信トポロジーを制限することで、メタデータのサイズを小さくすることができる。例えば、スター型、ツリー型、リニア型のトポロジーでは、単一のスカラーで十分である。