|René Nyffenegger's collection of things on the web|
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
A latch's purpose is to protect memory structures within the SGA that is accessed by more than one process. Basically, if a process writes to such a structure, no other process should be allowed to either read or write from/to this structure.
Technically, a latch can belong to either no or one process. It is guaranteed that no two or more processes can possess a latch at a given time, even if they try to aquire the latch concurently.
Latches are a little more restrictive as locks as latches cannot be shared.
There is no queue on latches. If multiple processes want to aquire a latch, there is no guarante for the first come, first serve principle.
A latch is basically a small unit of memory that indicates the state of the latch. The data structure representing a lock is more complicated as it caters for queues and sharing.
A parent latch is a latch that groups a set of (child) latches that somehow belong together. Latches that don't have parent latches and are not related to any other latches are called parent latches as well.