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