On Tue, 2006-12-05 at 15:14 -0500, Tom Lane wrote: > "Simon Riggs" <[EMAIL PROTECTED]> writes: > > On Mon, 2006-11-27 at 18:26 -0500, Tom Lane wrote: > >> [ studies code a bit more... ] I'm also wondering whether the forced > >> pg_control update at each xlog seg switch is worth its keep. Offhand > >> it seems like the checkpoint pointer is enough; why are we maintaining > >> logId/logSeg in pg_control? > > > We maintain the values in shared memory to allow us to determine whether > > or not its time to checkpoint, and also to ensure that there is one and > > only one call to checkpoint. So we need to keep track of this somewhere > > and that may as well be where it already is. > > Say again? AFAICT those fields are write-only; the only place we > consult them is to decide whether they need to be updated. My thought > was to remove 'em altogether.
Thats what I thought originally. However, they guard the entrance to RequestCheckpoint() and after they have been set nobody else will call it - look at the test immediately prior to the rows changed by the patch. That comparison is why we still need them and why they aren't just write-only. So they need to be there, but we just don't need to write them to pg_control. -- Simon Riggs EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq