Thread: Obsolete ToDo Item?

Obsolete ToDo Item?

From
Thomas Kellerer
Date:
Hi,

I was reading trough the ToDo list in the Postgres Wiki and noticed that one item for Fsync[1] seems to be obsolete:

    Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options and whether fsync does anything
        Ideally this requires a separate test program like /contrib/pg_test_fsync that can be run at initdb time or
optionallylater. 

This was added with 9.1[2] , so I guess that item can be removed from the Wiki page?

Regards
Thomas

[1] https://wiki.postgresql.org/wiki/Todo#Fsync
[2] http://www.postgresql.org/docs/9.1/static/pgtestfsync.html

Re: Obsolete ToDo Item?

From
Jeff Janes
Date:
On Wed, Jul 16, 2014 at 1:21 PM, Thomas Kellerer <spam_eater@gmx.net> wrote:
Hi,

I was reading trough the ToDo list in the Postgres Wiki and noticed that one item for Fsync[1] seems to be obsolete:

   Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options and whether fsync does anything
       Ideally this requires a separate test program like /contrib/pg_test_fsync that can be run at initdb time or optionally later.

This was added with 9.1[2] , so I guess that item can be removed from the Wiki page?

The to-do item is not for pg_test_fsync to be created, but rather for initdb to automatically invoke pg_test_fsync and then analyze the results and use that analysis to set up the fsync method.

But I do think this entry is obsolete.  If a certain method is "too fast", is that because the operating system lies and is not really syncing the data, or is it because you have a BBU/NVRAM in front of the disk?  Or because you aren't using spinning disk at all?  I don't think that there is any way for initdb to safely figure out what is going on just based on the outcome of some timing tests.  The person who purchased the hardware has to apply their knowledge.

Cheers,

Jeff

Re: Obsolete ToDo Item?

From
Bruce Momjian
Date:
On Wed, Jul 16, 2014 at 02:39:03PM -0700, Jeff Janes wrote:
> On Wed, Jul 16, 2014 at 1:21 PM, Thomas Kellerer <spam_eater@gmx.net> wrote:
>
>     Hi,
>
>     I was reading trough the ToDo list in the Postgres Wiki and noticed that
>     one item for Fsync[1] seems to be obsolete:
>
>        Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options and whether
>     fsync does anything
>            Ideally this requires a separate test program like /contrib/
>     pg_test_fsync that can be run at initdb time or optionally later.
>
>     This was added with 9.1[2] , so I guess that item can be removed from the
>     Wiki page?
>
>
> The to-do item is not for pg_test_fsync to be created, but rather for initdb to
> automatically invoke pg_test_fsync and then analyze the results and use that
> analysis to set up the fsync method.
>
> But I do think this entry is obsolete.  If a certain method is "too fast", is
> that because the operating system lies and is not really syncing the data, or
> is it because you have a BBU/NVRAM in front of the disk?  Or because you aren't
> using spinning disk at all?  I don't think that there is any way for initdb to
> safely figure out what is going on just based on the outcome of some timing
> tests.  The person who purchased the hardware has to apply their knowledge.

TODO item removed.

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

  + Everyone has their own god. +