Re: Win32 Powerfail testing
От | Dave Page |
---|---|
Тема | Re: Win32 Powerfail testing |
Дата | |
Msg-id | 03AF4E498C591348A42FC93DEA9661B885CD@mail.vale-housing.co.uk обсуждение исходный текст |
Ответ на | Win32 Powerfail testing (Tatsuo Ishii <t-ishii@sra.co.jp>) |
Ответы |
Re: Win32 Powerfail testing
|
Список | pgsql-hackers |
> -----Original Message----- > From: Tatsuo Ishii [mailto:t-ishii@sra.co.jp] > Sent: 06 March 2003 14:00 > To: Dave Page > Cc: pgsql-hackers@postgresql.org > 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.
В списке pgsql-hackers по дате отправления: