Bonjour,

je fais quelques tests de replication synchrone et je cherche à vérifier que le commit sur le maître fait bien en sorte que la donnée soit disponible immédiatement en lecture sur l'esclave :
1. insert et commit sur le serveur maître
2. vérification de la donnée juste insérée sur l'esclave

Les opération se font en OpenJDK 1.8.0-91 avec le driver jdbc 9.4.1208.

Maître et esclave sont en version 9.5.3 sous CentOS 6.5

J'ai positionné les paramétrages suivants.

Maître :

wal_level = hot_standby
synchronous_commit = on
archive_mode = on
archive_command = 'scp %p postgres@10.156.217.201:/var/lib/pgsql/9.5/backups/%f'
synchronous_standby_names = 'cadawebcat'

Esclave :

wal_level = hot_standby
synchronous_commit = on
hot_standby = on

Dans le recovery.conf :
restore_command = 'cp /var/lib/pgsql/9.5/backups/%f "%p"'
standby_mode = on
primary_conninfo = 'application_name=cadawebcat host=10.156.217.200 port=5432 user=replication password=replicationpass'

Sur 10000 insertions/vérifications, j'ai environ 15 données que je ne vois pas immédiatement sur l'esclave. La réplication ne semble donc pas si synchrone que cela. Une idée ?

Pour info complémentaire, j'ai passé les logs de l'esclave en debug :
< 2016-06-17 15:30:36.954 CEST >DEBUG:  StartTransactionCommand
< 2016-06-17 15:30:36.954 CEST >DEBUG:  lie <unnamed> à <unnamed>
< 2016-06-17 15:30:36.954 CEST >DEBUG:  CommitTransactionCommand
< 2016-06-17 15:30:36.963 CEST >DEBUG:  sendtime 2016-06-17 15:30:03.152726+02 receipttime 2016-06-17 15:30:36.963286+02 replication apply delay 0 ms transfer latency 33810 ms
< 2016-06-17 15:30:36.963 CEST >DEBUG:  sending write 4/2C14F6F8 flush 4/2C14F680 apply 4/2C14F680
< 2016-06-17 15:30:36.965 CEST >DEBUG:  sending write 4/2C14F6F8 flush 4/2C14F6F8 apply 4/2C14F680
< 2016-06-17 15:30:36.965 CEST >DEBUG:  record known xact 157607 latestObservedXid 157606
< 2016-06-17 15:30:36.965 CEST >CONTEXTE :  xlog redo Heap2/MULTI_INSERT: 1 tuples
< 2016-06-17 15:30:36.965 CEST >DEBUG:  record known xact 157607 latestObservedXid 157607
< 2016-06-17 15:30:36.965 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02
< 2016-06-17 15:30:36.965 CEST >DEBUG:  record known xact 157607 latestObservedXid 157607
< 2016-06-17 15:30:36.965 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02
< 2016-06-17 15:30:36.965 CEST >DEBUG:  remove KnownAssignedXid 157607
< 2016-06-17 15:30:36.965 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02
< 2016-06-17 15:30:36.966 CEST >DEBUG:  analyse <unnamed> : SELECT id FROM test WHERE id='58be24ab-3490-11e6-48e6-8da21da751c4'
< 2016-06-17 15:30:36.966 CEST >DEBUG:  StartTransactionCommand
< 2016-06-17 15:30:36.966 CEST >DEBUG:  lie <unnamed> à <unnamed>
< 2016-06-17 15:30:36.966 CEST >DEBUG:  CommitTransactionCommand
< 2016-06-17 15:30:37.185 CEST >DEBUG:  sendtime 2016-06-17 15:30:03.374971+02 receipttime 2016-06-17 15:30:37.185528+02 replication apply delay 0 ms transfer latency 33810 ms
< 2016-06-17 15:30:37.185 CEST >DEBUG:  sending write 4/2C14F770 flush 4/2C14F6F8 apply 4/2C14F6F8
< 2016-06-17 15:30:37.192 CEST >DEBUG:  sending write 4/2C14F770 flush 4/2C14F770 apply 4/2C14F6F8
< 2016-06-17 15:30:37.193 CEST >DEBUG:  analyse <unnamed> : SELECT id FROM test WHERE id='58be24ac-3490-11e6-6b4d-8da21da751c4'
< 2016-06-17 15:30:37.193 CEST >DEBUG:  StartTransactionCommand
< 2016-06-17 15:30:37.193 CEST >DEBUG:  lie <unnamed> à <unnamed>
< 2016-06-17 15:30:37.194 CEST >DEBUG:  CommitTransactionCommand
< 2016-06-17 15:30:37.200 CEST >DEBUG:  record known xact 157608 latestObservedXid 157607
< 2016-06-17 15:30:37.200 CEST >CONTEXTE :  xlog redo Heap2/MULTI_INSERT: 1 tuples
< 2016-06-17 15:30:37.200 CEST >DEBUG:  record known xact 157608 latestObservedXid 157608
< 2016-06-17 15:30:37.200 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02
< 2016-06-17 15:30:37.200 CEST >DEBUG:  record known xact 157608 latestObservedXid 157608
< 2016-06-17 15:30:37.200 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02
< 2016-06-17 15:30:37.200 CEST >DEBUG:  remove KnownAssignedXid 157608
< 2016-06-17 15:30:37.200 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02
< 2016-06-17 15:30:37.206 CEST >DEBUG:  sendtime 2016-06-17 15:30:03.395458+02 receipttime 2016-06-17 15:30:37.206025+02 replication apply delay 0 ms transfer latency 33810 ms
< 2016-06-17 15:30:37.206 CEST >DEBUG:  sending write 4/2C14F7E8 flush 4/2C14F770 apply 4/2C14F770
< 2016-06-17 15:30:37.210 CEST >DEBUG:  sending write 4/2C14F7E8 flush 4/2C14F7E8 apply 4/2C14F770
< 2016-06-17 15:30:37.210 CEST >DEBUG:  record known xact 157609 latestObservedXid 157608
< 2016-06-17 15:30:37.210 CEST >CONTEXTE :  xlog redo Heap2/MULTI_INSERT: 1 tuples
< 2016-06-17 15:30:37.210 CEST >DEBUG:  record known xact 157609 latestObservedXid 157609
< 2016-06-17 15:30:37.210 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02
< 2016-06-17 15:30:37.210 CEST >DEBUG:  record known xact 157609 latestObservedXid 157609
< 2016-06-17 15:30:37.210 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02
< 2016-06-17 15:30:37.210 CEST >DEBUG:  remove KnownAssignedXid 157609
< 2016-06-17 15:30:37.210 CEST >CONTEXTE :  xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02
< 2016-06-17 15:30:37.211 CEST >DEBUG:  analyse <unnamed> : SELECT id FROM test WHERE id='58be4ba0-3490-11e6-6b0d-8da21da751c4'

La donnée 58be24ac-3490-11e6-6b4d-8da21da751c4 est une de celle que je ne vois pas répliquée instantanément.

Merci pour votre aide.

Adoptez l'éco-attitude.
N'imprimez ce courriel que si c'est vraiment nécessaire