Bruce Momjian wrote:
> Have you seen /src/tools/fsync?
>
Now that the argument is already open, why postgres choose
on linux fdatasync? I'm understanding from other posts that
on this platform open_sync is better than fdatasync.
However I choose open_sync. During initdb why don't detect
this parameter ?
Regards
Gaetano Mendola
These are my times:
kernel 2.4.9-e.24smp ( RAID SCSI ):
Simple write timing:
         write                    0.011544
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      1.233312
         write, close, fsync      1.242086
Compare one o_sync write to two:
         one 16k o_sync write     0.517633
         two 8k o_sync writes     0.824603
Compare file sync methods with one 8k write:
         (o_dsync unavailable)
         open o_sync, write       0.438580
         write, fdatasync         1.239377
         write, fsync,            1.178017
Compare file sync methods with 2 8k writes:
         (o_dsync unavailable)
         open o_sync, write       0.818720
         write, fdatasync         1.395602
         write, fsync,            1.351214
kernel 2.4.22-1.2199.nptlsmp (single EIDE disk):
Simple write timing:
         write                    0.023697
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.688765
         write, close, fsync      0.702166
Compare one o_sync write to two:
         one 16k o_sync write     0.498296
         two 8k o_sync writes     0.543956
Compare file sync methods with one 8k write:
         (o_dsync unavailable)
         open o_sync, write       0.259664
         write, fdatasync         0.971712
         write, fsync,            1.006096
Compare file sync methods with 2 8k writes:
         (o_dsync unavailable)
         open o_sync, write       0.536882
         write, fdatasync         1.160347
         write, fsync,            1.189699