Overview of global enqueue waits
Overview of global enqueue waits
In a RAC database, the GES is responsible for inter-instance resource coordination. The GES manages all cache fusion inter-instance resource optimization. It tracks the status of all Oracle enqueue mechanisms for resources that are accessed by more than one instance. Oracle uses GES to manage concurrency for resources on transactions, tables and other structures within a RAC environment. GES is an integrated RAC component that coordinates global locks between the instances in the cluster. Block access and update are recorded in GRD, which is a virtual memory structure spanning across all instances. GES controls all library cache locks and dictionary cache locks in the database. These resources are local in a single instance database and global in a RAC database. Global locks are also used to protect data structures used for a transaction management. GES performs most of its activities using the LMD0 and LCK0 background processes. In general processes communicate with their local LMD0 process to manipulate the global resources. The local LMD0 process communicates with LMD0 process on other instances. The LCK0 background process is used to obtain locks that are required by the entire instance. For example LCK0 is responsible for maintaining dictionary cache locks.
A resource is a memory structure that represents some component of the database to which access must be restricted or serialized. In other words, the resource can only be accessed by one process or one instance at a time. If the resources is currently in use, other processes or instances needing to access the resource must wait in a queue until the resource becomes available.
An enqueue is a memory structure that serializes access to a particular resource. If the resource is only required by the local instance, then the enque can be required locally, and no coordination is necessary. However, if the resource is required by a remote instance, then the local enque must become global.
Let’s make an overview of the global enqueue waits in RAC. Enqueue in RAC are global in order to have coherency for enqueues across all the instances and they are synchronous.
Most common enqueue are listed below
TX – transaction enqueue representing either row lock waits or ITL waits
TM – table manipulation enqueue on any table with DML. For example update block in one instance and truncate, drop or collect statistics in another instance on the same table.
HW – high watermark enqueue when there is extending of HW on a segment
TA – transaction recovery enqueue
SQ – sequence generation enqueue
US – undo segment enqueue for managing undo segments extension
The waits may constitute serious serialization points because enqueue are often even in a single instance and in RAC in addition to serialization that occurs due to enqueus they are exacerbated due to the private interconnect latency. If something does not scale well in a single instance it will not scale well in RAC due to contention problems and additional overhead contributed by the private interconnect latencies.
No comments yet.
-
Archives
- February 2017 (1)
- November 2016 (1)
- October 2016 (1)
- May 2016 (2)
- March 2016 (3)
- December 2014 (2)
- July 2014 (1)
- June 2014 (6)
- May 2014 (5)
- February 2014 (1)
- December 2012 (2)
- November 2012 (8)
-
Categories
-
RSS
Entries RSS
Comments RSS
Leave a Reply