Re: database bloat, non removovable rows, slow query etc... [RESOLVED]

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Gregory Stark <gsstark(at)mit(dot)edu>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Matteo Sgalaberni <sgala(at)sgala(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: database bloat, non removovable rows, slow query etc... [RESOLVED]
Date: 2006-09-05 03:17:06
Message-ID: 18082.1157426226@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Gregory Stark <gsstark(at)mit(dot)edu> writes:
> I must be misunderstanding Tom's comment then.

> What I'm referring to is lazy_vacuum_rel() calls vacuum_set_xid_limits with
> the relisshared flag of the relation. vacuum_set_xid_limits passes that to
> GetOldestXmin as the allDbs parameter. GetOldestXmin ignores transactions not
> connected to the same database unless allDbs is true.

The problem is the indirect effect of other backends' xmin values,
which are computed across all live backends.

In the current structure, it's hard to see how to fix this except
by making each backend compute and advertise both a global and
database-local xmin. This seems a bit ugly. Also, someone asked
recently whether we could avoid counting prepared xacts when figuring
vacuum cutoffs, which seems a fair question --- but again, how to do
that without doubling the number of advertised xmin values yet again?

I'm starting to feel that we've reached the limits of this system of
accounting for live XIDs, but I have no idea what the next step might
look like...

regards, tom lane

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Indika Maligaspe 2006-09-05 04:02:04 Re: Postgress memory leak with JBoss3.2.6 and large DB
Previous Message Gregory Stark 2006-09-05 00:30:15 Re: database bloat, non removovable rows, slow query etc... [RESOLVED]