

> -----Original Message-----
> From: Tatsuo Ishii [mailto:t-ishii@sra.co.jp] 
> Sent: 05 March 2003 13:49
> To: Dave Page
> Cc: pgsql-hackers@postgresql.org
> Subject: Re: [HACKERS] Win32 Powerfail testing
> 
> 
> > > So far we found interesting facts. Our Win32 port passes his
> > > test in most cases. However if power of the machine is turned 
> > > off right after (10 to 20 seconds) the Checkpoint has been 
> > > made, it does not passes his test. So we are thinking that 
> > > there is someting wrong with the checkpoint implementaion for 
> > > Win32 port, which is essentially same as Jan's 
> > > implementation. i.e. using _flushall() instead of sync().  We 
> > > were looking for a fix or an alternative implementaion of 
> > > sync() without success.
> > 
> > Hi Tatsuo,
> > 
> > Does this help: 
> > http://support.microsoft.com/default.aspx?scid=kb;en-us;66052
> 
> Sorry, but it does not help. The page says we could use
> FlushFileBuffers() to sync the kernel buffer to the
> disk. Unfortunately, it requires a file descriptor to flush 
> for its argument. Thus it could not be a replacement of 
> sync(). Actually I have modified the buffer manager so that 
> it remembers all file descriptors those have not been synced 
> yet to the disk at the checkpoint time to sync them later. 
> However I found this modification does not help at all with 
> some reason I don't know.

How do you open the files (function, flags etc)? 

Regards, Dave.

Thu, 6 Mar 2003 13:33:45 -0000
"Dave Page" <dpage@vale-housing.co.uk>
Re: Win32 Powerfail testing
> > Sorry, but it does not help. The page says we could use
> > FlushFileBuffers() to sync the kernel buffer to the
> > disk. Unfortunately, it requires a file descriptor to flush 
> > for its argument. Thus it could not be a replacement of 
> > sync(). Actually I have modified the buffer manager so that 
> > it remembers all file descriptors those have not been synced 
> > yet to the disk at the checkpoint time to sync them later. 
> > However I found this modification does not help at all with 
> > some reason I don't know.
> 
> How do you open the files (function, flags etc)? 

Are you asking the way how to open files in the buffer manager?
If so, basically PostgreSQL uses open() with flags (O_RDWR |
PG_BINARY, 0600).
--
Tatsuo Ishii

Thu, 06 Mar 2003 22:59:50 +0900 (JST)
Tatsuo Ishii <t-ishii@sra.co.jp>
Re: Win32 Powerfail testing