2

インターネットで見つけた定義は2つあります。Sequential Consistencyと最終的な一貫性の違いは何ですか?

順次整合性 - 実行結果は、すべてのプロセッサの動作が何らかの順番で実行された場合と同じであり、個々のプロセッサの動作そのプログラムによって指定された順序でこの順序で現れる。

最終的な一貫性 - 特定のデータ項目に新しい更新が加えられなかった場合、最終的にその項目へのすべてのアクセスは最後に更新された値を返します。

定義は私にとっては明らかです。しかし、最終的な一貫性が逐次的でない場合は、私は得られません。 例: memの初期値は0です。水平軸は時間です。

P1:  write 1    (x) 
P2: read 0 read 0 read 0  read 1 read 1 read 1 

だから、そこに我々は入れ(x)のスロットに「1を書く」場合は1、いくつかの順番であり、これは、定義により、順次一貫性です。どこが間違っていますか?

答えて

0

逐次整合性と最終整合性の違いは、それらが提供する保証にあります。

結果整合性が指定されていません:

レジスタへの同時更新が不一致の期間は、結果

続くどのくらい

  • 、1つでもある場合はどうなります
    • クライアントはレジスタを変更すると状況に陥ることがありますが、フォローアップ読み取りでは古いデータが返されます。

      同じケースは、定義によって順次整合性をとることは不可能です(全体の順序はサブプロセッサの順序に関係します)。

      さらに、プログラムが時間に敏感な仮定を行わず、すべてのクライアント(プロセッサ)がシステム外で通信しない場合、逐次整合性は線形化性と区別できません。逆に、最終的な一貫性は、線形化ではなく、一貫性の欠如に非常に近い。

  • 関連する問題