Re: Use of sync() [was Re: Potential Large Performance Gain in WAL synching]

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Doug McNaught <doug(at)wireboard(dot)com>
Cc: Mats Lofkvist <mal(at)algonet(dot)se>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Use of sync() [was Re: Potential Large Performance Gain in WAL synching]
Date: 2002-10-05 16:55:14
Message-ID: 4290.1033836914@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Doug McNaught <doug(at)wireboard(dot)com> writes:
> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>> In practice I am not sure there is a problem. The local man page for
>> sync() says
>>
>> The writing, although scheduled, is not necessarily complete upon
>> return from sync.
>>
>> Now if "scheduled" means "will occur before any subsequently-commanded
>> write occurs" then we're fine. I don't know if that's true though ...

> In my understanding, it means "all currently dirty blocks in the file
> cache are queued to the disk driver". The queued writes will
> eventually complete, but not necessarily before sync() returns. I
> don't think subsequent write()s will block, unless the system is low
> on buffers and has to wait until dirty blocks are freed by the driver.

We don't need later write()s to block. We only need them to not hit
disk before the sync-queued writes hit disk. So I guess the question
boils down to what "queued to the disk driver" means --- has the order
of writes been determined at that point?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Curtis Faith 2002-10-05 17:22:40 Re: Proposed LogWriter Scheme, WAS: Potential Large Performance
Previous Message Curtis Faith 2002-10-05 16:33:14 Re: Proposed LogWriter Scheme, WAS: Potential Large Performance Gain in WAL synching