@inproceedings{DBLP:conf/vldb/Klots96, author = {Boris Klots}, editor = {T. M. Vijayaraman and Alejandro P. Buchmann and C. Mohan and Nandlal L. Sarda}, title = {Cache Coherency in Oracle Parallel Server}, booktitle = {VLDB'96, Proceedings of 22th International Conference on Very Large Data Bases, September 3-6, 1996, Mumbai (Bombay), India}, publisher = {Morgan Kaufmann}, year = {1996}, isbn = {1-55860-382-4}, pages = {583}, ee = {db/conf/vldb/Klots96.html}, crossref = {DBLP:conf/vldb/96}, bibsource = {DBLP, http://dblp.uni-trier.de} }BibTeX
These advantages do not come for free. The challenge of this architecture (as of any clustered or distributed architecture) is to provide data coherency for the independent users of the system. The way to do that is to use locking. Oracle uses multiple level locking: row locks on transaction levels, instance locks within instances, and global locks among the instances. The latter are specific to Oracle Parallel Server.
In a nutshell the cache coherency protocol for Oracle Parallel Server is as follows. If a unit of data is being used at an instance and these data are requested at another instance, a conflict may occur. Global locks are used to resolve these conflicts. Before accessing the data unit instance acquires a lock on it. Another instance which wants to access same data unit asks for another lock on the data. This request can be either compatible or incompatible with the lock held by the first instance. If it is compatible (e.g. both instances want to read current data) the lock is granted to the requester and it proceeds with the operation. If the request is incompatible (e.g. the first instance writes and another instance wants also to modify the data) then the requester blocks. First instance is signaled with a request/order to finish its processing and flush the data to the shared disk storage. When it does so, it also releases the lock. Now the requester can be granted the requested lock, it reads the current copy of the block from the disk and proceeds. The global lock operations and all the communication involved in that are performed by Distributed Lock Manager (DLM).
In the talk we analyze two basic problems associated with the architecture of a locking scheme:
Copyright © 1996 by the VLDB Endowment. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date appear, and notice is given that copying is by the permission of the Very Large Data Base Endowment. To copy otherwise, or to republish, requires a fee and/or special permission from the Endowment.