Re: BUG #11517: the pg_stat_replication.sync_stat show sync when synchronous_commit is set to be off

Lists: pgsql-bugs
From: amutu(at)amutu(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #11517: the pg_stat_replication.sync_stat show sync when synchronous_commit is set to be off
Date: 2014-09-29 07:45:52
Message-ID: 20140929074552.17173.32414@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 11517
Logged by: the pg_stat_replication.sync_stat show sync when synchronous_commit is set
to be off
Email address: amutu(at)amutu(dot)com
PostgreSQL version: 9.2.4
Operating system: suse linux 10 x86_64
Description:

from the doc,when synchronous_commit set to off or local,the commit will not
wait the remote slave reveive data,so it is not asynchronous replication.but
I find the pg_stat_replication wrongly report the sync_stat to sync.This can
be confused for people.

postgres=# select * from pg_stat_replication ;
-[ RECORD 1 ]----+------------------------------
pid | 3213
usesysid | 16387
usename | rep
application_name | sync_slave
client_addr | 172.25.38.154
client_hostname |
client_port | 54333
backend_start | 2014-09-29 15:17:19.927457+08
state | streaming
sent_location | 21/A0F01C0
write_location | 21/A0F01C0
flush_location | 21/A0F01C0
replay_location | 21/A0EFC88
sync_priority | 1
sync_state | sync

postgres=# show synchronous_standby_names ;
-[ RECORD 1 ]-------------+-----------------------
synchronous_standby_names | sync_slave,walreceiver

postgres=# show synchronous_commit ;
-[ RECORD 1 ]------+----
synchronous_commit | off


From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: amutu(at)amutu(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #11517: the pg_stat_replication.sync_stat show sync when synchronous_commit is set to be off
Date: 2014-09-29 08:02:44
Message-ID: CAB7nPqRQ_mp65oR=B9LVr5eeBwjLk8RD3X4trymdG=8ydTHp-A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

On Mon, Sep 29, 2014 at 4:45 PM, <amutu(at)amutu(dot)com> wrote:

> from the doc,when synchronous_commit set to off or local,the commit will
> not
> wait the remote slave reveive data,so it is not asynchronous
> replication.but I
> find the pg_stat_replication wrongly report the sync_stat to sync.This can

This is not a bug, please refer to the documentation about
synchronous_commit:
http://www.postgresql.org/docs/devel/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT

When synchronous_commit is set to off, local or remote_write, the master
node does not wait for the confirmation from the sync standby that the WAL
has been flushed to disk (for remote_write it waits for the write
confirmation), and the standby is still considered as sync, of course if
synchronous_standby_names is set.
Regards,
--
Michael


From: Jov <amutu(at)amutu(dot)com>
To: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
Cc: pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #11517: the pg_stat_replication.sync_stat show sync when synchronous_commit is set to be off
Date: 2014-09-29 09:22:46
Message-ID: CADyrUxPhmx_cKGnd80b7kgHyW_8bcL6z3BqseKR_KyN0KGy7-Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

I read the doc before I submit the bug
2014年9月29日 4:03 PM于 "Michael Paquier" <michael(dot)paquier(at)gmail(dot)com>写道:
>
>
>
> On Mon, Sep 29, 2014 at 4:45 PM, <amutu(at)amutu(dot)com> wrote:
>>
>> from the doc,when synchronous_commit set to off or local,the commit will
not
>> wait the remote slave reveive data,so it is not asynchronous
replication.but I
>> find the pg_stat_replication wrongly report the sync_stat to sync.This
can
>
> This is not a bug, please refer to the documentation about
synchronous_commit:
>
http://www.postgresql.org/docs/devel/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT
>
> When synchronous_commit is set to off, local or remote_write, the master
node does not wait for the confirmation from the sync standby that the WAL
has been flushed to disk (for remote_write it waits for the write
confirmation), and the standby is still considered as sync, of course if
synchronous_standby_names is set.

I can't figure out this conclusion from the doc above.I appreciate it if
you point me more specifically.
> Regards,
> --
> Michael