Don't take ProcArrayLock while exiting a transaction that has no XID; there is
Tom Lane <tgl@sss.pgh.pa.us>
Don't take ProcArrayLock while exiting a transaction that has no XID; there is no need for serialization against snapshot-taking because the xact doesn't affect anyone else's snapshot anyway. Per discussion. Also, move various info about the interlocking of transactions and snapshots out of code comments and into a hopefully-more-cohesive discussion in access/transam/README. Also, remove a couple of now-obsolete comments about having to force some WAL to be written to persuade RecordTransactionCommit to do its thing.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/heap/heapam.c | modified | +3 −4 |
| src/backend/access/transam/README | modified | +105 −1 |
| src/backend/access/transam/xact.c | modified | +86 −65 |
| src/backend/commands/copy.c | modified | +1 −8 |
| src/backend/executor/execMain.c | modified | +1 −7 |
| src/backend/storage/ipc/procarray.c | modified | +20 −59 |