Re: SRA Win32 sync() code - Mailing list pgsql-patches

From Tom Lane
Subject Re: SRA Win32 sync() code
Date
Msg-id 29231.1069006898@sss.pgh.pa.us
Whole thread Raw
In response to Re: SRA Win32 sync() code  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: SRA Win32 sync() code
Re: [pgsql-hackers-win32] SRA Win32 sync() code
List pgsql-patches
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Tom Lane wrote:
>> Seriously though, if we can move the bulk of the writing work into
>> background processes then I don't believe that there will be any
>> significant penalty for regular backends.

> If the background writer starts using fsync(), we can have normal
> backends that do a write() set a shared memory boolean.  We can then
> test that boolean and do sync() only if other backends had to do their
> own writes.

That seems like the worst of both worlds --- you still are depending on
sync() for correctness.

Also, as long as backends only *seldom* do writes, making them fsync a
write when they do make one will be less of an impact on overall system
performance than having a sync() ensue shortly afterwards.  I think you
are focusing too narrowly on the idea that backends shouldn't ever wait
for writes, and failing to see the bigger picture.  What we need to
optimize is overall system performance, not an arbitrary restriction
that certain processes never wait for certain things.

            regards, tom lane

pgsql-patches by date:

Previous
From: Manfred Spraul
Date:
Subject: Re: SIGPIPE handling
Next
From: Tom Lane
Date:
Subject: Re: SIGPIPE handling