Consistency model とは

コンピュータサイエンスでは、分散共有メモリシステムや分散データストア(ファイルシステム、データベース、オプティミスティックレプリケーションシステム、Webキャッシングなど)などの分散システムで整合性モデルが使用されています。このシステムは、メモリ上の演算が特定の規則に従うならば、与えられたモデルをサポートすると言われている。データ一貫性モデルは、プログラマとルール間の契約を規定しており、プログラマがルールに従う場合、メモリは一貫性があり、メモリの読み出し、書き込み、または更新の結果は予測可能であることが保証される。これは、キャッシュまたはキャッシュレスのシステムで発生する一貫性と異なり、すべてのプロセッサーに対するデータの一貫性があります。 Coherenceは、単一の場所または単一の変数への書き込みがすべてのプロセッサに見えるグローバルな順序を維持することを扱います。一貫性は、すべてのプロセッサーに関する複数の場所への操作の順序付けを処理します。
C ++やJavaなどの高水準言語では、メモリ操作を低レベル操作に変換してメモリセマンティクスを保持することによって、部分的に契約を維持します。契約を保持するために、コンパイラはいくつかのメモリ命令を並べ替えることができ、pthread_mutex_lock()などのライブラリ呼び出しは必要な同期をカプセル化します。
モデル検査による順次整合性の検証は、一般に、有限状態のキャッシュ一貫性プロトコルであっても決めることができない。
整合性モデルは、見かけの順序と更新の可視性のためのルールを定義し、トレードオフを伴って連続しています。