Hannu Krosing <[EMAIL PROTECTED]> writes: > Please check the actual patch and advise if anything is still missing.
While testing this I realized that it does not in fact work as advertised. It will only exclude long-running VACUUMs from other VACUUMs' OldestXmin if *all* the transactions in the system are lazy VACUUMs. If there is even one regular transaction in the system, that transaction will include the VACUUMs in its MyProc->xmin, and thence GetOldestXmin will have to include them in its result. AFAICS the only way to fix this would be to exclude inVacuum transactions from GetSnapshotData's calculations as well. That makes the patch far more invasive, and I'm not confident I can work out all the implications. (In particular, the consequences for TransactionIdIsInProgress look bad. I don't think we want a VACUUM to be seen as not-in-progress.) So I'm bouncing this patch again... regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend