弱一貫性
表示
この項目「弱一貫性」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:en:Weak consistency) 修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2023年1月) |
この記事は別の言語から大ざっぱに翻訳されたものであり、場合によっては不慣れな翻訳者や機械翻訳によって翻訳されたものかもしれません。 |
弱一貫性(じゃくいっかんせい)という用語は、2つの意味で使われる。厳密でより一般的な第一の意味では、コンカレントプログラミングの領域(分散共有メモリ、分散トランザクションなど)で使用される一貫性モデルの一つである。2つ目は、より一般的な意味での弱一貫性です。弱一貫性は、逐次一貫性よりも弱い一貫性モデルに適用することができる。
同時更新を行わないシステムにおける弱一貫性モデルには結果整合性(結果一貫性)を含む。これは、どの更新も非常に長い時間がかかる場合、すべてのレプリカが最終的に一貫性を持つようになることを定義している[1]。
プロトコルは以下の場合に弱一貫性をサポートすると言われている。
- 同期変数へのすべてのアクセスは、すべてのプロセス(またはノード、プロセッサ)から同じ順序(シーケンシャル)で見られる(これらは同期操作である)。クリティカルセクションへのアクセスは順次行われる。
- その他のアクセスは、プロセス(またはノード、プロセッサ)ごとに異なる順序で見られる。
- 異なる同期操作の間にある読み取りと書き込みの両方の操作のセットは、各プロセスで同じです。
したがって保留中の書き込み操作がある場合は、同期変数へのアクセスはできない。またシステムが何らかの同期操作を行っている場合、新たな読み書き操作を開始することはできない。
より厳密な条件は強い一貫性であり、並列プロセスは1つの一貫した状態しか観察できない。
脚注
[編集]- ^ Tanenbaum, Andrew; Maarten Van Steen (2007). “Distributed systems”. Pearson Prentice Hall.
参考資料
[編集]- The original paper on weak ordering: M. Dubois, C. Scheurich and F. A. Briggs, Memory Access Buffering in Multiprocessors, in Proceedings of 13th Annual International Symposium on Computer Architecture 14, 2 (June 1986), 434-442.
- Sarita V. Adve, Mark D. Hill, Weak ordering - a new definition, in Proceedings of the 17th Annual International Symposium on Computer Architecture.