The redo list is an internal database list of transactions. It is created by the redo log manager. It is stored in the main memory.
The redo list is an enhancement to the transaction list. The redo list contains information on the transactions that were started after the most recent savepoint took place. The list also contains details of the sequence in which the transactions were carried out. These transactions will need to be repeated if a restart or recovery is required.
The log reader determines the transactions that need to be entered into the redo list as follows:
· If transactions in the transaction list are marked as complete at the time of the most recent savepoint, the log reader enters these transactions immediately into the redo list.
· The log reader creates a redo log file for each further transaction found in the redo log entries. If a COMMIT or a ROLLBACK is found for the entire transaction, the log reader enters the transaction into the redo list. If a ROLLBACK is found within a transaction, the log reader removes the corresponding redo log entries from the redo log file to avoid these log entries being processed unnecessarily.
· If uncompleted transactions are found after all the redo log entries have been read, the log reader flags these transactions with a ROLLBACK and enters them into the redo list. These transactions are subsequently treated as ROLLBACK transactions.