Skip to main content

並行性制御とは何ですか?

dataデータ管理プログラミングでは、並行性制御は、同時操作によって正確な結果が生成されるように設計されたメカニズムです。これらの結果は、タイムリーに取得する必要があります。濃度制御は、ユーザーが取得できる検索可能な情報のキャッシュがあるデータベースで非常によく見られます。これが意味することは、すべてのトランザクションがシリアルおよび特定の順序で実行された場合、トランザクションのセットと接触するデータは特定の状態であるということです。同時に、2つのトランザクションによって変更された結果、そのデータが無効になることがあります。アクセス。ただし、これは過剰であり、プログラマーが分散システムでの並行性制御の恩恵を受けることはできません。並行性制御により、複数のトランザクションを同時に実行でき、これらのトランザクションを互いに遠ざけ、線形化可能性を確保します。同時実行制御を実装する1つの方法は、リソースを共有するシリアルトランザクション実行のための特定のリソースに排他的ロックを使用することです。トランザクションは使用することを目的としたオブジェクトをロックし、他のトランザクションがロックされているオブジェクトを要求する場合、そのトランザクションはオブジェクトのロックを解除するのを待つ必要があります。リソースロックを発行するサーバー。これは、一元化された相互除外のサーバーに非常に似ており、クライアントはロックを要求し、特定のリソースでロックをリリースするためのメッセージを送信できます。ただし、シリアル実行の保存は、並行性制御に依然として必要です。2つの個別のトランザクションが同様のオブジェクトセットにアクセスする場合、結果は類似している必要があり、これらのトランザクションが特定の順序で実行されたかのようです。リソースへのアクセスの順序を確保するために、2フェーズロックが導入されます。つまり、トランザクションは別のロックのリリース時に新しいロックを許可されていません。フェーズ、トランザクションが必要なロックを取得します。次のフェーズは、トランザクションにロックがリリースされている縮小フェーズと見なされます。このタイプのロックには問題があります。トランザクションが中止された場合、他のトランザクションは、中止されたトランザクションによって変更およびロック解除されたオブジェクトからのデータを使用する場合があります。これにより、他のトランザクションが中止されます。