Re: Vacuum threshold and non-serializable read-only transaction

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Vacuum threshold and non-serializable read-only transaction
Date: 2008-01-28 05:49:23
Message-ID: 18203.1201499363@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> writes:
> I think we can remove recently dead tuples even if non-serializable read-only
> transactions are still alive, because those transactions will not see older
> versions of tuples.

Surely this'd require having those transactions display exactly what
their current oldest-xmin is. We've talked about that before, and it
seems a good idea, but it requires a bit more infrastructure than is
there now --- we'd need some snapshot-management code that could keep
track of all live snapshots within each backend.

> Is it proper behavior? I worry about too conservative estimation
> in incrementing ShmemVariableCache->latestCompletedXid.

Too conservative is much better than too liberal, in this case
(and I'm as bleeding-heart liberal as they come ;-))

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Neil Conway 2008-01-28 06:11:18 RFC: array_agg() per SQL:200n
Previous Message ITAGAKI Takahiro 2008-01-28 05:05:53 Vacuum threshold and non-serializable read-only transaction