Example: Transaction Commit

Setup
This example will describe the actions of the Write Ahead Log in the event of a normal transaction commit. We will only be using components found in the WAL Logging Framework

Assumptions

 * strict two phase locking concurrency control
 * STEAL, NO-FORCE buffer management with WAL
 * Disk writes are atomic
 * Transactions are a series of reads and writes, followed by a commit or abort

Components


The components we are using are described by something I call the logging framework and is shown to the right.

Process

 * 1) Start by creating the commit log record in the log table
 * 2) Flush all records from log table to log disk, making sure that flushedLSN $$\geq$$ lastLSN (from the transaction table)
 * 3) Commit finishes and write out the end record to the log