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 [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html