Re: Checkpoint question

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Checkpoint question
Date: 2006-01-12 03:12:55
Message-ID: 406.1137035575@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu> writes:
> So I wonder is it possible flush only dirty buffers with LSN < RedoRecPtr
> to improve checkpoint caused delay?

Certainly not. If LSN > RedoRecPtr then you know the buffer contains
some changes more recent than the checkpoint, but you cannot tell
whether it also contains changes older than the checkpoint. For
correctness you must flush it.

It'd be possible to do something like this: after establishing
RedoRecPtr, make one quick pass through the buffers and make a list of
what needs to be dumped at that instant. Then go back and do the actual
I/O for only those buffers. I'm dubious that this will really improve
matters though, as the net effect is just to postpone I/O that will
happen anyway soon after the checkpoint (as soon as the bgwriter goes
back to normal activity).

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Qingqing Zhou 2006-01-12 03:33:07 Re: Checkpoint question
Previous Message Qingqing Zhou 2006-01-12 01:46:16 Re: Checkpoint question