Oracle Multiversion Concurrency Control
Data page contains latest version of each record, which points to older version in rollback segment.
Read-committed query reads data as of its start time.
Read-only isolation reads data as of transaction start time.
“Serializable” query reads data as of the txn’s start time.
- An update checks that the updated record was not modified after txn start time.
- If that check fails, Oracle returns an error.
- If there isn’t enough history for Oracle to perform the check, Oracle returns an error. (You can control the history area’s size.)
- What if T1 and T2 modify each other’s readset concurrently?