sql >> データベース >  >> RDS >> Oracle

2PL、厳密なモデルと厳密なモデル、何か利点はありますか?

    ツーフェーズロック(2PL)プロトコルとは何ですか?

    A transaction is two-phase locked if:
    
    before reading x, it sets a read lock on x
    
    before writing x, it sets a write lock on x
    
    it holds each lock until after it executes the corresponding operation
    
    after its first unlock operation, it requests no new locks
    

    では、厳密なフェーズロックとは何ですか?

    ここで、トランザクションは、コミット/中止するまで、すべての排他的ロックを保持する必要があります。

    しかし、厳密な2PLとは何ですか?

    厳密な2フェーズロックはさらに厳密です。ここでは、すべてのロックがコミット/中止されるまで保持されます。このプロトコルでは、トランザクションはコミットした順序でシリアル化できます。

    はるかに深い:

    厳密な2PL:

    2PLと同じですが、トランザクションが正常にコミットまたは中止されるまで、すべての排他ロックを保持します。 –カスケードレスの回復可能性を保証します

    厳密な2PL:

    Strict 2PLと同じですが、トランザクションが正常にコミットまたは中止されるまで、すべてのロックを保持します。 –データアクセスパターンが事前にわからない動的な環境で使用されます。

    デッドロックはありません。また、古いトランザクションによって保持されているアイテムを要求する若いトランザクションは中止され、同じタイムスタンプで再開され、飢餓が回避されます。

    ダイアグラムを使用した上記の明確な説明によって、厳密なものの概念と利点が明確になったことを願っています。

    ありがとう



    1. SQL Serverシステムデータベース–MSDBのメンテナンス

    2. MySQLでテーブルの名前を変更する方法

    3. postgresでデータベースを切り替える方法は?

    4. postgresql関数またはトリガーからhttpリクエストを送信するにはどうすればよいですか?