Parallel cache management (PCM) instance locks do not protect cache buffers—at least not directly. They protect data structures known as lock elements. Each lock element protects a set of data blocks, not cache buffers. However, any cache buffers containing those data blocks are linked to their lock element.
Lock elements are also called global cache locks, but that term is unhelpful because they are neither locks nor resources. They are an intersection entity between PCM instance locks and cache buffers.
Lock elements are either releasable or fixed. Releasable lock elements may be used for either hashed or fine-grained locking, but fixed lock elements are used only for hashed locking. In hashed locking, data blocks are mapped to lock elements using a hash algorithm, and a single lock element may protect any number of cached blocks at once. In fine-grained locking, lock elements are dynamically allocated to protect a single cached block at a time.
The mapping of data blocks to hashed lock elements, and whether they are fixed or releasable lock elements, is established by the GC_FILES_TO_LOCKS and GC_ROLLBACK_LOCKS parameters. The number of fixed lock elements is derived from these strings. The number of releasable lock elements used for hashed locking in these strings must be less than the number of releasable lock elements specified with the GC_RELEASABLE_LOCKS parameter, which defaults to the number of buffers in the cache. The remaining releasable ...