Jon Nelson <jnelson+pgsql@jamponi.net> writes:
> On Thu, Aug 8, 2013 at 4:42 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Does your test program use all the same writing options that the real
>> WAL writes do (like O_DIRECT)?
> I believe so.
>> From xlog.c:
> /* do not use get_sync_bit() here --- want to fsync only at end of fill */
> fd = BasicOpenFile(tmppath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
> S_IRUSR | S_IWUSR);
> and from the test program:
> fd = open(filename, O_CREAT | O_EXCL | O_WRONLY, 0600);
Maybe I misunderstood, but I thought the performance complaint had to do
with the actual writes of WAL data, not with the pre-fill. That is, you
should not just be measuring how long the pre-fill takes, but what is the
speed of real writes to the file later on (which will be using
get_sync_bit, for various values of the sync settings).
regards, tom lane