Currently, we advance latestCompletedXid during
ProcArrayEndTransaction() for both commits and aborts.

If a transaction aborts, its effects are invisible to us just the same
as if the transaction is still running.

ISTM that we need not move latestCompletedXid as a result of an abort.
Only a commit could change what we see as visible.

This must be true, because if a backend had a FATAL error but yet exited
before it ran ProcArrayEndTransaction() we would not move
latestCompletedXid forward either.

Avoiding this will make snapshots smaller in some cases, but it's really
just a correctness thing.

-- 
 Simon Riggs           www.2ndQuadrant.com
 PostgreSQL Training, Services and Support


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to