Wayne Schroeder <raz@positivenetworks.net> writes:
> I have a quite heavily accessed database that is vacuumed nightly.
> Attached to that database are processes, that at times, due to the way
> they are coded, stay "idle in transaction" for long periods of time
> (client lib implementation issues a BEGIN). I've been reading up on
> XIDs and the like and I'm trying to determine if this is going to cause
> problems.
Yup, it is; you should try to fix those apps to not send BEGIN until
they are ready to do some work. Idle-in-transaction processes will tend
to prevent VACUUM from removing dead rows, for instance, because it
can't be sure that those processes shouldn't be able to see recently-dead
rows.
regards, tom lane