réplication synchrone

Emmanuel BEZAGU <[email protected]>
Newsgroups gmane.comp.db.postgresql.french
Message-ID <23161_1466173157_576406E5_23161_242_1_0f1b51d3-6122-0734-4feb-ebf572bd2efb@dgfip.finances.gouv.fr>
Bonjour,

(je viens de me rendre compte qu'il serait préférable d'envoyer le 
message en texte et non HTML, désolé)

je fais quelques tests de réplication 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 
[email protected]:/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.



--
Envoi via la liste pgsql-fr-generale ([email protected])
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.