The area of the
main memory required for redo log
management is called the log queue. The size of a log queue (in log pages) is
determined by the special database
parameter LOG_IO_QUEUE.
A transaction uses a
log queue to obtain a main memory area for a redo log
entry. The transaction writes
the redo log entry to the log pages of the log queues.
Writing of the log
pages to the log area is
carried out by the log
writer.
1.
The user task of the
transaction reserves main memory space for a redo log entry in the log
queue.
2. The transaction writes the redo log entry to the reserved area of the log queue.
The time at which the redo log entry is written to the log queue is assigned to the relevant log page (log queue sequence number).
3.
The transaction releases
the reserved area of the log queue for processing by the log writer, and
provides information on whether it wants to wait for the log page from the log
queue to be written to the log area. This behavior is always required for COMMIT and
ROLLBACK
operations.
If a transaction does wait for the redo log entry to be written, the log writer notifies the transaction once the relevant page has been written from the log queue to the log area, and informs the transaction of the log sequence number that was assigned when the log page was written to the log area.