|Oracle9i Real Application Clusters Concepts
Release 2 (9.2)
Part Number A96597-01
This chapter describes the interinstance resource coordination messaging that the Global Enqueue Service (GES) performs in Real Application Clusters. The GES coordinates interinstance coordination using resource, data, and interinstance data requests. Topics in this chapter include:
Chapter 6, "Cache Fusion and the Global Cache Service" for information about the Global Cache Service (GCS)
The GES manages all non-Cache Fusion intrainstance resource operations and tracks the status of all Oracle enqueuing mechanisms. The GES does this for resources that are accessed by more than one instance. The primary resources that the GES controls are dictionary cache locks and library cache locks. The GES manages the communication regarding these resources that occurs between instances. However, these resources do not protect datafile blocks. The GES also performs deadlock detection to all deadlock sensitive enqueues and resources.
Other parts of an Oracle database also globally protect their data structures. These other parts are the:
Each layer has specific protocols that other layers use to access their respective data structures. All layers of Oracle use the services of the GES API to acquire, convert, and release resources that reside in these layers. The GES uses parameters that affect global enqueue resources to automatically calculate the exact memory requirements for enqueue resource management operations when an instance starts up.
At the transaction layer, global enqueue resources are sometimes held only for a very short time and quickly released. Normally, TX locks, for example, are acquired when a transaction starts and they are released when the transaction commits. In some cases they are used to signal an event, such as in the case of library cache locks where DDL statements may invalidate library cache objects. In general, transaction and table lock processing operate the same way in Real Application Clusters as they do in single-instance Oracle databases. The next section more closely examines the resources managed by the GES.
This section explains how Oracle uses GES enqueues to manage concurrency for resources that operate on transactions, tables, and other entities within an Oracle Real Application Clusters environment. The following resources are local in single-instance Oracle databases, but they are global when they are under the control of the GES:
Each Real Application Clusters database instance has a dictionary cache, or row cache, containing data dictionary information. The data dictionary structure is the same for Oracle instances in a cluster database as it is for instances in single instance Oracle. However, in Real Application Clusters, Oracle synchronizes all the dictionary caches throughout the cluster. Real Application Clusters uses latches to do this, just as in single-instance Oracle databases.
Consider a five-node Real Application Clusters environment in which a user drops a table on one node. Because each dictionary cache, of which there are five, may have a copy of the definition of the dropped table, the node dropping the table from its cache must inform the other four dictionary caches to drop their copies of the definition. Real Application Clusters handles this automatically with messages managed by the GES.
When a database object, such as a table, view, procedure, package, or index, is referenced during the parsing of a SQL, DML, DDL, PL/SQL, or Java statement, the process that parses the statement acquires a library cache lock. In Oracle9i, the lock is held only until the parse or compilation completes, or, for the duration of the parse call.
Part III of this book describes Real Application Clusters implementation topics.