On Mon, Mar 16, 2015 at 11:46 AM, Robert Haas <robertmh...@gmail.com> wrote:

> On Sun, Mar 15, 2015 at 8:04 PM, Rui DeSousa <r...@crazybean.net> wrote:
> > Would a parameter to auto terminate long running transactions be a
> better solution? Terminating the long running transaction would allow for
> the normal vacuuming process to cleanup the deleted records thus avoiding
> database bloat without introducing new semantics to Postgres's MVCC. I
> would also recommend that the default be disabled.
>
> An advantage of Kevin's approach is that you don't have to abort *all*
> long-running transactions, only those that touch data which has been
> modified since then.  If your system is read-mostly, that could
> dramatically reduce the number of aborts.
>
>
Indeed. The suggestion of auto-terminating long running transactions misses
the point, ISTM. Most of the use cases I can see for this involve vacuuming
tables that the long running transaction will have no interest in at all
(which is why I suggested being able to set it on a per table basis). I
certainly don't want to be terminating my long running report transaction
so that my queue table which is only ever touched by very short-lived
transactions can be reasonably vacuumed. But that's what we have to do now.

cheers

andrew

Reply via email to