Haas: MVCC and VACUUM
Robert Haas gets intothe details of how PostgreSQL concurrency works and why an occasionalVACUUM is necessary. "The second approach to providing transactionswith atomicity and isolation is multi-version concurrency control(MVCC). The basic idea is simple: instead of locking a row that we want toupdate, let's just create a new version of it which, initially, is visibleonly to the transaction which created it. Once the updating transactioncommits, we'll make the new row visible to all new transactions that startafter that point, while existing transactions continue to see the oldrow."