Each page maintains an identifier called PageLSN. When an update operation takes place on a page, the operation stores the LSN of its log record in the PageLSN field of the page.
Each log record also contains the LSN of the previous log records of the same transaction. This value stored in the PrevLSN field, permits log records of a transaction to be fetched backwards, without reading the whole log.
There are special read-only log records produced during the transaction rollback, called ‘Compensation Log Records’ (CLRs).
The ‘Dirty Page Table’ has a list of pages that have been updated in the database buffer. For each page, it stores the PageLSN and a field called the RecLSN, which helps to identify log records that have been applied already to that edition of the page on the disk.
A checkpoint Log Record contains the dirty page table and a list of active transactions. For each transaction, the checkpoint log record notes LastLSN as well, the LSN of the last log record written by the transaction.