Re: win32 performance - fsync question

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Magnus Hagander" <mha(at)sollentuna(dot)net>
Cc: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>, "Christopher Kings-Lynne" <chriskl(at)familyhealth(dot)com(dot)au>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: win32 performance - fsync question
Date: 2005-02-17 19:39:56
Message-ID: 10137.1108669196@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Magnus Hagander" <mha(at)sollentuna(dot)net> writes:
> Tom, if you look at all the requirements of FILE_FLAG_NO_BUFFERING on
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/
> base/createfile.asp, can you say offhand if the WAL code fulfills them?

If I'm reading it right, you are referring to:

File access must begin at byte offsets within the file that are
integer multiples of the volume's sector size.

File access must be for numbers of bytes that are integer multiples
of the volume's sector size. For example, if the sector size is 512
bytes, an application can request reads and writes of 512, 1024, or
2048 bytes, but not of 335, 981, or 7171 bytes.

Buffer addresses for read and write operations should be sector
aligned (aligned on addresses in memory that are integer multiples
of the volume's sector size). Depending on the disk, this
requirement may not be enforced.

1 and 2 should be no problem since we only read or write integral pages
(8K). 3 is a bit bogus IMHO, or even a lot bogus. You can set
ALIGNOF_BUFFER in src/include/pg_config_manual.h to whatever you think
the alignment requirement really needs to be (I'd try 512).

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Merlin Moncure 2005-02-17 19:54:21 Re: win32 performance - fsync question
Previous Message Merlin Moncure 2005-02-17 19:28:29 Re: win32 performance - fsync question