> > > Of course we would need to buffer >= 1 xlog page before write (or commit)
> > > to gain the full advantage.
> >
> > > prewrite 0 + write and fsync: 60.4 sec
> > > sparse file + write with O_SYNC: 37.5 sec
> > > no prewrite + write with O_SYNC: 36.8 sec
> > > prewrite 0 + write with O_SYNC: 24.0 sec
> > The reason I'm inclined to question this is that what we want is not an
> > fsync per write but an fsync per transaction, and we can't easily buffer
> > all of a transaction's XLOG writes...
>
> Yes, that is something to consider, but it would probably be sufficient to buffer
> 1-3 optimal IO blocks (32-256k here).
> I assumed that with a few busy clients the fsyncs would come close to
> one xlog page, but that is probably too few.
I get best performance with eighter:
prewrite + 16k write with O_SYNC: 15.5 sec
prewrite + 32k write with O_SYNC: 11.5 sec
no prewite + 256k write with O_SYNC: 5.4 sec
But this 256k per tx would probably be very unrealistic, thus
best overall performance would probably be achieved with
a 32k (or tuneable) xlog buffer O_SYNC and prewrite.
Maybe a good thing for 7.1.1 :-)
Andreas
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly