ツーフェーズロック(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と同じですが、トランザクションが正常にコミットまたは中止されるまで、すべてのロックを保持します。 –データアクセスパターンが事前にわからない動的な環境で使用されます。
デッドロックはありません。また、古いトランザクションによって保持されているアイテムを要求する若いトランザクションは中止され、同じタイムスタンプで再開され、飢餓が回避されます。
ダイアグラムを使用した上記の明確な説明によって、厳密なものの概念と利点が明確になったことを願っています。
ありがとう