Concurrency Control in PostgreSQL (cont)
Implementing MVCC in PostgreSQL requires:
- a log file to maintain current status of each Ti
- in every tuple:
-
xmin ID of the tx that created the tuple
-
xmax ID of the tx that replaced/deleted the tuple (if any)
-
xnew link to newer versions of tuple (if any)
- for each transaction Ti :
- a transaction ID (timestamp)
- SnapshotData: list of active tx's when Ti started
|