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

Reply via email to