Re: Full page images in WAL & Cache Invalidation

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Florian G(dot) Pflug" <fgp(at)phlo(dot)org>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Full page images in WAL & Cache Invalidation
Date: 2007-07-23 14:40:21
Message-ID: 24598.1185201621@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Florian G. Pflug" <fgp(at)phlo(dot)org> writes:
> I came up with the following plan for both inval events and locks
> .) Store two flags in the commit record of a transaction, for
> "transaction generated inval events" and "transaction held an
> access exlusive lock".
> .) Upon replay, block until no transactions are running (for
> "transaction held an exclusive lock") before replaying the
> record, or flush the caches after replaying it (for
> "transaction generated inval events").

This does not work; the lock has to be taken earlier than that.
(See for instance VACUUM's truncate calls.) Not to mention that
you have converted "exclusive lock on one table" to "exclusive lock
on every table", which is even worse than the idea of converting
per-table cache flushes to system-wide ones.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2007-07-23 14:45:35 Re: syslogging oddity
Previous Message Magnus Hagander 2007-07-23 14:36:00 Re: Oops in fe-auth.c