Re: Background writer process

From: Kurt Roeckx <Q(at)ping(dot)be>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Jan Wieck <JanWieck(at)Yahoo(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Background writer process
Date: 2003-11-13 23:02:40
Message-ID: 20031113230240.GA1379@ping.be
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Nov 13, 2003 at 05:39:32PM -0500, Bruce Momjian wrote:
> Jan Wieck wrote:
> > Bruce Momjian wrote:
> > > He found that write() itself didn't encourage the kernel to write the
> > > buffers to disk fast enough. I think the final solution will be to use
> > > fsync or O_SYNC.
> >
> > write() alone doesn't encourage the kernel to do any physical IO at all.
> > As long as you have enough OS buffers, it does happy write caching until
> > you checkpoint and sync(), and then the system freezes.
>
> That's not completely true. Some kernels with trickle sync, meaning
> they sync a little bit regularly rather than all at once so write() does
> help get those shared buffers into the kernel for possible writing.
> Also, it is possible the kernel will issue a sync() on its own.

So basicly on some kernels you want them to flush their dirty
buffers faster.

I have a feeling we should more make it depend on the system how
we ask them not to keep it in memory too long and that maybe the
sync(), fsync() or O_SYNC could be a fallback in case it's needed
and there are no better ways of doing it.

Maybe something as posix_fadvise() might be useful too on systems
that have it?

Kurt

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 2003-11-13 23:58:54 Re: Background writer process
Previous Message Bruce Momjian 2003-11-13 22:39:32 Re: Background writer process