Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > I remember the other difference between 8.0 and pre-8.0. When a backend
> > has to write a block in 8.0, it does a write _plus_ fsync(), while in
> > pre-8.0 it did only a write. There was a proposal to pass backend write
> > information to the background writer so it would know to fsync at
> > checkpoint, but it was decided that backend writing would be rare. I
> > think we have to rethink that assumption.
>
> No, just read the code. The above assertions are all wet.
Oh, I forgot you added that array to pass fsync info.
Shouldn't we send a log message when the array gets full in md.c:
{ if (ForwardFsyncRequest(reln->smgr_rnode, seg->mdfd_segno)) return true; }
if (FileSync(seg->mdfd_vfd) < 0) return false;
Seems that could fill up quickly. I see no checking for existing
matching records in the array.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073