From: | Kevin Brown <kevin(at)sysexperts(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Win32 Powerfail testing |
Date: | 2003-03-07 10:05:41 |
Message-ID: | 20030307100541.GX1833@filer |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tatsuo Ishii wrote:
> Today I revisited the implemnetation (replacing sync() with
> open/_commit) I made several days ago and found a bug with it (thanks
> to Hiroshi). With the fixed version of it, now my Win32 port has
> passed your test even right after checkpoint!.
I presume that this implementation tracks which files have been opened
and uses _commit() to write all the changes to disk for those files?
If so, then it would be of significant value, IMHO, if you could
abstract the changes in such a way that they could be applied to the
Unix side as well.
sync() writes *all* uncommitted buffers to disk, whether or not they
belong to the process or process group that initiated the sync(). On
systems which do more than just host PG, a sync() does more work
(sometimes much more work) than is necessary and will unnecessarily
burden the system with writes. I think it would be a win, from a
design standpoint if nothing else, if PG committed only those pages
that it was responsible for.
The Unix equivalent of _commit() appears to be fsync() or fdatasync().
So it sounds a lot like a "port" to Unix of the changes you have made
for this might easily be a trivial search and replace. :-)
--
Kevin Brown kevin(at)sysexperts(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2003-03-07 10:28:26 | Re: Win32 Powerfail testing |
Previous Message | Dave Page | 2003-03-07 08:47:05 | Re: Win32 Powerfail testing |