Re: O_DIRECT support for Windows - Mailing list pgsql-hackers

From ITAGAKI Takahiro
Subject Re: O_DIRECT support for Windows
Date
Msg-id 20070328141319.63D7.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
Whole thread Raw
Responses Re: O_DIRECT support for Windows
List pgsql-hackers
Magnus Hagander <magnus@hagander.net> wrote:

> IIRC, we're still waiting for performance numbers showing there exists a
> win from this patch.

Here is a performance number of Direct I/O support on Windows.
There was 10%+ of performance win on pgbench (263.33 vs. 290.79) in O_DIRECT.

However, I only have a desktop-class machine for Windows.
(Pendium 4 3.6GHz with HT, 3GB of RAM, 2 ATA-drives)
Test on production-class machines might show different results.

In addition, I'm slightly worried about aligment issues reported by Magnus.
We might need fail-back-to-non-direct feature on error for safety.


$ pgbench -i -s50
$ pgbench -s50 -t8000 -c8

O_DSYNC (FILE_FLAG_WRITE_THROUGH) 263.33 tps
O_DSYNC + O_DIRECT (FILE_FLAG_WRITE_THROUGH + NO_BUFFERING) 290.79 tps

wal_sync_method = open_datasync
wal_buffers = 4MB
shared_buffers = 256MB
checkpoint_segments = 64


> > Magnus Hagander wrote:
> >> We're ok with the alignment issues provided the is code added to reject
> >> O_DIRECT if the sector size is too large.

> >>> ITAGAKI Takahiro wrote:
> >>>> The attached is a patch to define O_DIRECT by ourselves on Windows,
> >>>> and to map O_DIRECT to FILE_FLAG_NO_BUFFERING.

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_index updates and SI invalidation
Next
From: Andrew - Supernews
Date:
Subject: Re: Arrays of Complex Types