GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Oracle 主要な待機イベント(RAC固有)

主な待機イベント一覧

Category Wait Class Event
RAC Cluster gc cr/current (multi block) request
Cluster gc cr/current grant 2-way
Cluster gc cr/current block 2-way/3-way
Cluster gc buffer busy acquire/release

インターコネクト

RACにはインターコネクトを通したデータのやり取りに関する待機イベントがある。 これらの待機イベントは大きく2種類に分けられる。
- GES(Global Enqueue Service)の待機イベント:インスタンス間の排他制御に関連
- GCS(Global Cache Service)の待機イベント:インスタンス間のバッファキャッシュ一貫性に関連
本記事ではGCSの説明を行う
ブロックを取得する際、ディスクと自ノードのバッファキャッシュ以外に他インスタンスのバッファキャッシュも取得先の選択肢となるため、ブロック取得の手続きがシングルインスタンスより複雑になる

GCS

  • バッファには以下の2種類がある
    • CURRENT:ブロックの最新バージョン(DML文で要求される)
    • CR(consistent read):特定時点のコミット済み変更が反映されたブロック(SELECTで要求される)

      GCS待機イベントは下記のように表示される

      f:id:undercovergeek:20200926113144p:plain

CURRENTとCRの違い

f:id:undercovergeek:20200926113233p:plain

gc cr/current (multi block) request

  • 意味
    CRブロックあるいはCURRENTブロックの要求中のためにサーバープロセスが待機していることを示す
  • 状況
    リクエストが完了し、正確な待機イベントが現れるまでの一時的な待機イベント(プレースホルダ)と位置付けられる f:id:undercovergeek:20200926113602p:plain

gc cr/current grant 2-way

  • 意味
    CRブロックあるいはCURRENTブロックの要求に対して、ディスクからの読込みが許可されたことを示す ※何らかの要因でこの許可に時間を要した場合は、gc cr/current grant busy待機イベントが発生する
  • 状況
    リソースマスターへの要求とサーバープロセスへの許可で2方向のやり取りを行う f:id:undercovergeek:20200926113624p:plain

gc cr/current block 2-way

  • 意味
    CRブロックあるいはCURRENTブロックの要求に対してキャッシュしているインスタンスからブロック転送が行われたことを示す
  • 状況
    リソースマスターへの要求とサーバープロセスへの転送で2方向のやり取りを行う f:id:undercovergeek:20200926113650p:plain

gc cr/current block 3-way

  • 意味
    CRブロックあるいはCURRENTブロックの要求に対してキャッシュしているインスタンスからブロック転送が行われたことを示す
  • 状況
    リソースマスターへの要求/ブロック保持ノードへの転送指示/サーバープロセスへの転送、の3方向のやり取りを行う f:id:undercovergeek:20200926113752p:plain

gc buffer busy acquire

  • 意味
    同一インスタンスの別セッションがキャッシュフュージョンによって他のキャッシュからバッファを読み取り終わるのをサーバープロセスが待機していることを示す
  • 状況
    同一ブロックの取得要求による競合によって発生する f:id:undercovergeek:20200926113816p:plain

gc buffer busy release

  • 意味
    別インスタンスの別セッションがキャッシュフュージョンによってローカルキャッシュからバッファを読み取り終わるのを待機していることを示す
  • 状況
    同一ブロックの取得要求による競合によって発生する f:id:undercovergeek:20200926113835p:plain

スポンサーリンク