Private Interconnect: It is a high bandwidth & low latency communication setup used for transferring cluster specific heartbeat messages.
In RAC environment, cluster Interconnect can also be used for some high level operations like:
1. Used for identifying the health, status and message synchronization between all the nodes of the cluster.
2. Used for maintaining the global resource lock request within the cluster.
3. Heavily used for transferring the oracle data blocks from one instance buffer cache to other instance buffer cache.
4. The more the inter instance update will increase more traffic on the network, that’s why is it recommended to have high bandwidth for the cluster interconnect and that could be vendor specific
Global Resource Directory- GRD:
1. It is new memory component and is a part of shared pool and we can find only in RAC specific instances.
2. Oracle automatically maintains GRD consistency among all the nodes of the cluster
3. GRD maintains metadata information of the blocks which are present in database buffer cache(DBBC)
4. GRD Information like:
a. SCN #
b. DBA- Data Block Address/ Data Block Identifier
i. It is a combination of file id + block id
c. Location of the most recent version of the block.
d. Mode of the block:
i. NULL(N) : It indicates that no access rights are available and the block can be accessed locally
ii. SHARED (S): it indicates that access rights are available and block can be accessible by multiple instances.
iii. EXCLUSIVE(X): It indicates that block can be accessible by only one instance exclusively, basically during DML operations.
e. Role of the block:
i. LOCAL(L): It indicates that the block image is present in only one instance
ii. GLOBAL (G): it indicates that the block image is present in multiple instances.
f. Type of the block image:
i. Current (CURR)
ii. Consistent read (CR)
iii. Past image (PI)
GRD Example:
SCN# | DBA | Location | Mod of the block | Role of the block | Type of the image | |
U1 (user1 : Select statement from instance 1) N1 (node1) | 125 | 1521 (fileid:15, block id:21) | N1 – Node1 | Null (N) | Local (L) | CURR |
U1 (User1: issued an update statement) | 128 | 1521 | N1 | N à X Null to exclusive mode | L | PI-Past image CURR à CR Cache fusion |
U2(user2: update statement on same table form node2) | 135 | 1521 | N2 | XàSàX | G | CURRà CR |
GRD internally maintains by coordinating GES & GCS.
Global Enqueue Service – GES: It coordinates with global resource lock request and non cache (other the DBBC) fusion by using LMC & LCK background processes
Global Cache Services – GCS: It coordinates with cache fusion operations with the help of LSMn background process
Cache Fusion:
- It is the process of transferring the available data blocks from one instance to buffer cache to another instance buffer cache
- It is to avoid more costly hardware intensive disk I/O.
o Disk read à millisecond
o Cache read à nanosecond
- It has two phases:
o Cache fusion phase1 was supported with oracle8i, OPS for only read operations, still I/O has to happen for DML operations
o From 9i, RAC onwards cache fusion phase2 was introduced for both data read & DML operations.
LMSn – Global Cache Service Process:
- It is responsible for transferring the data blocks from 1 instance to another instance buffer cache.
- This process can be controlled by the parameter “GCS_SERVER_PROCESSES”
GCS_SERVER_PROCESSES = 1 (Default)
= 10 (9.2)
= 20 (10.1)
= 36 (10.2) [0-9 & a-z]
Note: Cache fusion operations we can call It as cache coherent technique or soft ping where as disk read we can call as hard ping.
LMON - Global Enqueue Server Monitor:
- It is responsible for maintaining the consistency for GRD among all the instance of a database
- It is also responsible for GRD recovery for the failed instance.
LMD – Global Enqueue Service Daemon:
- It is responsible for maintaining global resource lock requests i.e... Requests for the resource which are coming from the other instances. It will process them and maintain a queue
LCK – Lock Process: It is responsible for non cache fusion operations
DIAG: It is responsible for updating the diagnostic information in alert log files & trace files whenever server process or any other background processes need diagnosis.
No comments:
Post a Comment