Craig Ringer <craig(at)postnewspapers(dot)com(dot)au> writes:
> Does Pg have issues with long-running read-only transactions in
> read-committed mode? Or are they an exception to the usual "avoid
> long-running mostly-idle transactions" guideline?
> Pg doesn't have to worry about retaining old rows in vacuum with such a
> statement, because each new statement creates a new snapshot, so if it's
> idle it effectively has _no_ snapshot and vacuum is free to clear old
> rows. It doesn't need to keep track of anything to roll back, since the
> transaction is read only.
As of 8.4, I think the above statements are true. In prior releases,
transactions just advertised the age of their first snapshot, so an
open transaction created an issue for VACUUM regardless of whether
it was serializable or not. 8.4 has more bookkeeping that allows a
transaction to report that it currently has no live snapshots.
regards, tom lane
In response to
pgsql-jdbc by date
|Next:||From: Craig Ringer||Date: 2009-12-11 15:39:21|
|Subject: Re: Cheapest way to poll for notifications?|
|Previous:||From: Albe Laurenz||Date: 2009-12-11 15:20:36|
|Subject: Re: Connection.setReadOnly()|