Synchronization Between Instances

In an Oracle Parallel Server configuration, multiple instances mount and open the database in shared mode. Since multiple instances share one database, it is likely that copies of the same object will end up in the SGA of more than one instance. For example, when instance 1 needs to modify rows contained in block B1, it reads the block B1 from disk into its buffer cache and then modifies the block. Now, if instance 2 also needs to modify block B1, it needs a copy of that block in its buffer cache. In order for instance 2 to get the latest copy of the block, instance 1 first must write that block back to disk. Instance 2 then can read it and proceed to modify it.

Because two instances can modify the copy of a block held in their respective buffer caches, there is a need to maintain consistency between these two copies. In other words, in terms of the previous example, instance 2 needs some way to know that instance 1 has already read and modified the same block that it also needs to change. Maintaining consistency among cached versions of database blocks in buffer caches of multiple instances is called cache coherency and is illustrated in Figure 6.3. Oracle uses global locks to ensure cache coherency. These locks are referred to as global locks because they are managed across all the instances associated with the OPS database. An Oracle component called the Integrated Distributed Lock Manager (IDLM) coordinates these inter-instance locking activities.

Cache coherency

Figure 6-3. Cache coherency

With the release of Oracle8i, a new technique called cache fusion has been introduced to maintain cache coherency. When one instance needs a block held by another, cache fusion enables the block to be transferred directly between the two instances without first being written to disk. This buffer-to-buffer transfer of blocks allows synchronization to occur much faster than when the blocks are transferred via disk and greatly improves Oracle Parallel Server’s performance in Oracle8i.

Directly related to cache fusion, a new Oracle8i background process called the Block Server Process (BSP) has been added to facilitate the transfer of buffer cache blocks from one instance to another. The BSP creates a consistent-read image of the blocks to be transferred and sends them to the requesting instance. The cache fusion technique has been implemented only for a subset of the cases in which cache coherency is necessary. Chapter 8, discuses in detail the mechanism used to maintain cache coherency.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.109.102