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, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html