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