5.1 ブロッカ・リゾルバのアーキテクチャ
ブロッカ・リゾルバは、データベース内のDIA0
タスクとして自律的に実行されます。
ブロッカ・リゾルバは、次の3つのフェーズで機能します:
-
検出: このフェーズでは、ブロッカ・リゾルバによってすべてのノードのデータが収集され、別のセッションで保持されているリソースを待機しているセッションが検出されます。
-
分析: このフェーズでは、ブロッカ・リゾルバによって検出フェーズで検出されたセッションが分析され、セッションが潜在的な遅延の一部であるかどうかが判別されます。セッションが遅延している可能性がある場合、ブロッカ・リゾルバは特定のしきい値期間の間待機して、セッションが遅延していることを確認します。
-
検証: このフェーズでは、しきい値期間の経過後に、ブロッカ・リゾルバによってセッションが遅延していることが検証され、遅延の原因となっているセッションが選択されます。
遅延の原因となっているセッションを選択した後、ブロッカ・リゾルバはそのセッションに解決方法を適用します。セッションのチェーンまたは遅延が自動的に解決された場合は、ブロッカ・リゾルバによって遅延の解決方法は適用されません。ただし、遅延が自動的に解決されない場合、ブロッカ・リゾルバは遅延の原因となっているセッションを終了することで遅延を解決します。セッションの終了が失敗した場合は、ブロッカ・リゾルバによってセッションのプロセスが終了されます。このプロセス全体は自律型であり、リソースを長期間ブロックせず、パフォーマンスに影響を与えません。
たとえば、遅延したセッションのチェーンに高ランクのセッションが含まれている場合、ブロッカ・リゾルバによって遅延の原因となっているセッションの終了が迅速に実行されます。遅延の原因となっているセッションの終了によって、高ランクのセッションが長時間待機することが回避され、高ランクのセッションのパフォーマンス目標が維持されます。
親トピック: データベースおよびデータベース・インスタンスの遅延の解決