> -----Original Message----- > From: Tatsuo Ishii [mailto:[EMAIL PROTECTED] > Sent: 06 March 2003 14:00 > To: Dave Page > Cc: [EMAIL PROTECTED] > Subject: Re: [HACKERS] 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).
I cannot find it now, but I'm sure I read that FlushFileBuffers() has no effect unless the file was opened with CreateFile() with the GENERIC_WRITE flag. A quick google shows quite a few people recommending that approach to others having trouble flushing files opened with fopen or _open. Regards, Dave. ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org