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
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] |