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
Follow Me!!!