From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Matthew T(dot) O'Connor" <matthew(at)zeut(dot)net>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Autovacuum loose ends |
Date: | 2005-07-23 01:16:05 |
Message-ID: | 20050723011605.GC2734@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
On Fri, Jul 22, 2005 at 07:37:53PM -0400, Tom Lane wrote:
> Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
> > I've hacked the whole thing enough that I fixed most of the issues.
> > However this one I don't know how to handle. What I need to do is
> > compare each database's frozen Xid with the current transaction Id.
> > I can get the frozenxid from the flatfile -- however I don't have
> > anything with which to compare it. I tried ReadNewTransactionId(), but
> > it doesn't work because it tries to acquire a LWLock, which isn't
> > possible because we don't have a PGPROC before connecting to a database.
>
> > I guess I could the Xid from pg_control. This seems unclean however.
> > Opinions about doing that? Better ideas?
>
> Getting it from pg_control isn't that bad; the value could be as old as
> the last checkpoint, but that should be close enough for this purpose.
Ok, fair enough.
That makes me wonder however if the test should be heavier. Right now,
the test is
/*
* We decide to vacuum at the same point where vacuum.c's
* vac_truncate_clog() would decide start giving warnings.
*/
age = (int32) (ReadNewTransactionId() - db->frozenxid);
whole_db = (age > (int32) ((MaxTransactionId >> 3) * 3));
Now that we are going to test a TransactionId that was current slightly
in the past, maybe it should instead read
whole_db = (age > (int32) ((MaxTransactionId >> 3) * 4));
so that vac_truncate_clog doesn't start emitting warning just before we
do the vacuum.
--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
FOO MANE PADME HUM
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2005-07-23 02:04:50 | Re: [HACKERS] Timezone bugs |
Previous Message | Tom Lane | 2005-07-22 23:37:53 | Re: Autovacuum loose ends |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2005-07-23 02:04:50 | Re: [HACKERS] Timezone bugs |
Previous Message | Tom Lane | 2005-07-22 23:37:53 | Re: Autovacuum loose ends |