Re: Difference between fsync and open_sync

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Difference between fsync and open_sync
Дата
Msg-id 20140419022447.GB16260@momjian.us
обсуждение исходный текст
Ответ на Re: Difference between fsync and open_sync  (David G Johnston <david.g.johnston@gmail.com>)
Список pgsql-admin
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@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +


В списке pgsql-admin по дате отправления:

Предыдущее
От: "Bui, Michelle P"
Дата:
Сообщение: Re: shared_preload_libraries = $libdir/plugins/plugin_debugger.dll causes server not started
Следующее
От: Elías David
Дата:
Сообщение: Default order of select datname from pg_database