Re: Difference between fsync and open_sync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 17, 2014 at 08:54:25PM -0700, David G Johnston wrote:
> > And i understood the difference between, for example, fsync and fdatasync,
> > and between open_datasync and open_sync, but i cannot understand the
> > difference between open_sync and fsync or between open_datasync and
> > fdatasync , As far as i could understand, the open_* methods call the
> > open() method of linux, and f*sync methods calls the fsync() method of
> > linux?
> > 
> > My doubt is about what's the difference between them, or a link where this
> > is explained. In the previous link it talks about the 4 methods but i
> > cannot distinguish the difference between them.
> 
> fsync and open are both system functions for which documentation exists on
> the Internet.
> 
> Short answer seems to be that the physical write is guaranteed: open =
> immediately; fsync = at commit
> 
> As long as "fsync mode" is on after a commit command returns the WAL is
> promised to be physically written to disk; the means and speed of doing so
> vary according to the method chosen (limited by platform), the workload, the
> hardware, and the OS.
> 
> Others will correct any misunderstandings I may have acquired in my quick
> reading and reasoning.

The open* sync methods use a flag when the file is open that cause
_every_ write to be flushed to disk automatically.  The non-open* types
allow multiple writes and require a specific sync* command to be issued
when needed.

-- 
  Bruce Momjian  <bruce@xxxxxxxxxx>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +


-- 
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux