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

Reply via email to