Subscribe to Posts by Email

Subscriber Count

    701

Disclaimer

All information is offered in good faith and in the hope that it may be of use for educational purpose and for Database community purpose, but is not guaranteed to be correct, up to date or suitable for any particular purpose. db.geeksinsight.com accepts no liability in respect of this information or its use. This site is independent of and does not represent Oracle Corporation in any way. Oracle does not officially sponsor, approve, or endorse this site or its content and if notify any such I am happy to remove. Product and company names mentioned in this website may be the trademarks of their respective owners and published here for informational purpose only. This is my personal blog. The views expressed on these pages are mine and learnt from other blogs and bloggers and to enhance and support the DBA community and this web blog does not represent the thoughts, intentions, plans or strategies of my current employer nor the Oracle and its affiliates or any other companies. And this website does not offer or take profit for providing these content and this is purely non-profit and for educational purpose only. If you see any issues with Content and copy write issues, I am happy to remove if you notify me. Contact Geek DBA Team, via geeksinsights@gmail.com

Pages

RAC Wait Events: Where is “gc buffer busy”? gc buffer busy acquire vs. gc buffer busy release.

I raised a SR that am not able to see the gc buffer busy wait event as expected and eventually got to know that it is no more.

Before proceeding, what is gc buffer busy? Event ‘gc buffer busy’ event means that a session is trying to access a buffer,but there is an open request for Global cache lock for that block already, and so, the session must wait for the GC lock request to complete before proceeding. This wait is instrumented as ‘gc buffer busy’ event.

But in 11g you cannot see this event any more,  11g onwards, this wait event is split in to    ‘gc buffer busy acquire’ and ‘gc buffer busy release’.

gc buffer busy acquire, is an event waiting for an access to a block/buffer in local instance, where some other session is in same local instance has already had a place holder on it (btw, gc cur/cr request are placeholders (enqueue)) in this case may be an instance 1.

‘gc buffer busy release’. is an event recorded when the remote instance is waiting for an access to the same block/buffer but from remote instance (in this case instance 2).

For example,

1) A block 55060 is placed in a Instance 1 buffer with gc current request by a session SID 30, a wait event recorded for this “gc current request”

2) The same block 55060, is need by session SID 38 in Instance 1 itself to acquire gc lock,  a wait event recorded in instance 1 will be “gc buffer busy acquire”

3) And the same block/buffer 55060, is also need by session SID 56 in instance 2 to acquire gc lock for some modifications, now a event will be recorded in instance 2 will “gc buffer busy release”

Earlier to 11g the above 2,3 recorded as gc buffer busy only.

Look at the output.

INST_ID    SID EVENT                   USERNAME   STATE    Text
------- ------ ----------------------- ---------- -------- -------------------------------
      1     30 gc current request      SYS        WAITING  2 file# 5-block# 56050 id-1939303
      1     38 gc buffer busy acquire  SYS        WAITING  file# 10-block# 56050-class# 1
      2     56 gc buffer busy release  SYS        WAITING  file# 10-block# 56050-class# 1

 

-Thanks

Geek DBA

Comments are closed.