On Thu, May 17, 2012 at 4:53 PM, Erik Rijkers <e...@xs4all.nl> wrote:
> The count(*) was done in the way that I showed, i.e. *after* psql had exited. 
>  My understanding is
> that, with synchronous replication 'on' and configured properly, psql could 
> only return *after*
> the sync-replica had the data safely on disk.  Either my understanding is not 
> correct or there is
> a bug in postgres sync-rep.

Commit can only return when sync-replica has the data safely on disk,
but this doesn't mean that it's visible yet.

The sequence of events is in dot notation:
commit_command -> master_wal_sync -> replica_wal_sync ->
master_commit_visible -> commit_response
replica_wal_sync -> replica_replay_wal -> replica_commit_visible

If you issue a select on the replica after getting a commit response
from master you can see that the query getting a snapshot races with
replay of the commit record.

Ants Aasma
-- 
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt
Web: http://www.postgresql-support.de

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

Reply via email to