[prev] 35 [next]

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