データベースリカバリにおけるSteal/No-StealポリシーとForce/No-Forceポリシーの違い 質問する

データベースリカバリにおけるSteal/No-StealポリシーとForce/No-Forceポリシーの違い 質問する

と言われている盗み禁止ポリシートランザクションの更新されたバッファブロックは、トランザクションがコミットされる前にディスクに書き込まれず、強制禁止政策同様の定義があります。

それらの違いは何ですか?

ベストアンサー1

トランザクション T1 がデータ オブジェクト X を読み取りたいが、作業メモリが他のすべてのトランザクションの作業でいっぱいになっているとします。そのため、T1 はメモリの一部をクリアする必要があります。これは、作業メモリ内の他のページを安定したストレージにキックすることで行われます。T1 が安定したストレージにプッシュしているものがまだコミットされているかどうかわからないため、これは危険な場合があります。これは、スティーリングと呼ばれます。

強制とは、トランザクションがコミットされるたびに、影響を受けるすべてのページが安定したストレージにプッシュされることを意味します。これは非効率的です。各ページが多数のトランザクションによって書き込まれる可能性があり、システムの速度が低下するからです。

ほとんどのクラッシュ リカバリでは、すべてのコミット効果をメモリに強制しない速度を得るために、コミットされていない可能性のあるデータをメモリに書き込むリスクを受け入れて、steal/no-force アプローチを使用します。

おすすめ記事