On Tue, Aug 18, 2020 at 10:58:51AM -0400, Bruce Momjian wrote:
> Un, 'on' does _not_ apply the WAL data, and remote_apply does do remote
> fsync.  If you want to go in order of severity, with the most severe
> first, it is:
> 
>       remote_apply
>       on
>       remote_write
>       local
> 
> This is seen in the C enum ordering for synchronous_commit, but in
> reverse order:
> 
>       typedef enum
>       {
>           SYNCHRONOUS_COMMIT_OFF,     /* asynchronous commit */
>           SYNCHRONOUS_COMMIT_LOCAL_FLUSH, /* wait for local flush only */
>           SYNCHRONOUS_COMMIT_REMOTE_WRITE,    /* wait for local flush and 
> remote
>                                                * write */
>           SYNCHRONOUS_COMMIT_REMOTE_FLUSH,    /* wait for local and remote 
> flush */
>           SYNCHRONOUS_COMMIT_REMOTE_APPLY /* wait for local flush and remote 
> apply */
>       }           SyncCommitLevel;

Also, there is some logic to say that the postgresql.conf
synchronous_commit options list should be reordered from:

        #synchronous_commit = on                # synchronization level;
                                                # off, local, remote_write, 
remote_apply, or on

to

        #synchronous_commit = on                # synchronization level;
                                                # off, local, remote_write, on, 
or remote_apply

I think we should backpatch the doc changes, but maybe not the
postgresql.conf one --- I am not sure.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee



Reply via email to