ホームページ >よくある問題 >データの一貫性とは何ですか?

データの一貫性とは何ですか?

青灯夜游
青灯夜游オリジナル
2019-03-02 17:32:2431263ブラウズ

データの一貫性とは何ですか?

データの一貫性とは通常、関連するデータ間の論理関係が正しく完全であるかどうかを指しますが、データ ストレージの一貫性モデルはそれを可能にします。はストレージシステムとデータ利用者の合意とみなされ、利用者がこの合意に従えば、システムが約束したアクセス結果が得られます。

一般的に使用される一貫性モデルは次のとおりです:

a. 厳密な一貫性:

データの読み取り出力は常に最後に書き込まれたデータです。この一貫性は、グローバル クロックが存在する場合にのみ可能であり、分散ネットワーク環境では実現できません。

b. 逐次一貫性:

すべてのユーザーは同じデータに対する操作を同じ順序で表示しますが、その順序は必ずしもリアルタイムであるとは限りません。

c. 因果関係の一貫性:

因果関係のある書き込み操作のみ、すべてのユーザーが同じ順序で表示される必要があります。因果関係のない書き込みの場合は、次のように実行されます。並行であり、順序の保証はありません。因果的一貫性は、逐次一貫性のパフォーマンスの最適化と見なすことができますが、実装中に因果的依存関係グラフを確立して維持することは非常に困難です。

d. パイプラインの一貫性:

因果的一貫性モデルをさらに弱体化するには、特定のユーザーが完了した書き込み操作を他のすべてのユーザーが使用できるようにする必要があります。パイプが次から次へと続くのと同様に、異なるユーザーからの書き込み操作でも順序を保証する必要はありません。実装は比較的簡単です。

e. 弱い一貫性:

逐次一貫性を確保するために、共有データ構造へのアクセスのみが必要です。同期変数に対する操作はシーケンシャルな一貫性を持ち、グローバルに表示され、処理を待機している書き込み操作がない場合にのみ実行できるため、重要な領域へのシーケンシャルなアクセスが保証されます。同期時には、すべてのユーザーが同じデータを参照できます。

f. リリースの一貫性:

弱い一貫性では、ユーザーがクリティカル セクションに入りたいのか、クリティカル セクションから出たいのかを区別できません。リリースの一貫性では、次の 2 つの異なる操作ステートメントが使用されます。区別される。書き込みが必要な場合、ユーザーはオブジェクトを取得し、書き込み後に解放します。取得と解放の間にクリティカル セクションが形成されます。解放の一貫性を提供するということは、解放操作が発生したときに、すべてのユーザーがその操作を確認できる必要があることを意味します。

g、結果整合性:

新しい更新がない場合、更新は最終的にネットワークを通じてすべてのレプリカ ポイントに伝播され、最終的にすべてのレプリカ ポイントが言い換えれば、ユーザーは、最終時点より前の中間プロセスで新しく書き込まれたデータが表示されることを保証できません。結果的に整合性のあるモデルを採用するには、重要な要件が 1 つあります。それは、古いデータの読み出しが許容されることです。

h. 増分一貫性:

システムはデルタ時間以内に一貫性に達します。この期間中は一貫性のないウィンドウが発生します。これは、ログ配布プロセスが原因である可能性があります。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がデータの一貫性とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。