Kurt Roeckx wrote:
> On Thu, Mar 18, 2004 at 02:22:10PM -0500, Bruce Momjian wrote:
> >
> > OK, what better test do you suggest? Right now, there has been no
> > testing of these.
>
> I suggest you start by doing atleast preallocating a 16 MB file
> and do the tests on that, to atleast be somewhat simular to what
> WAL does.
>
> I have no idea what the access pattern is for normal WAL
> operations or how many times it gets synched. Does it only do
> f(data)sync() at commit time, or for every block it writes?
>
> I think if you write more data you'll see more differences
> between O_(D)SYNC and f(data)sync().
>
> I guess it can depend on if you have lots of small transactions,
> or more big ones.
>
> Atleast try to make something that covers different access
> patterns.
OK, I preallocated 16mb. New results:
Simple write timing:
write 0.037900
Compare fsync times on write() and non-write() descriptor:
(If the times are similar, fsync() can sync data written
on a different descriptor.)
write, fsync, close 0.692942
write, close, fsync 0.762524
Compare one o_sync write to two:
one 16k o_sync write 8.494621
two 8k o_sync writes 4.177680
Compare file sync methods with one 8k write:
(o_dsync unavailable)
open o_sync, write 1.836835
(fdatasync unavailable)
write, fsync, 1.780872
Compare file sync methods with 2 8k writes:
(The fastest should be used for wal_sync_method)
(o_dsync unavailable)
open o_sync, write 4.255614
(fdatasync unavailable)
write, fsync, 2.120843
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073