réplication synchrone

From: Emmanuel BEZAGU <emmanuel(dot)bezagu(at)dgfip(dot)finances(dot)gouv(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: réplication synchrone
Date: 2016-06-17 14:19:18
Message-ID: 23161_1466173157_576406E5_23161_242_1_0f1b51d3-6122-0734-4feb-ebf572bd2efb@dgfip.finances.gouv.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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
postgres(at)10(dot)156(dot)217(dot)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.

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Vik Fearing 2016-06-17 14:22:07 Re: replication synchrone
Previous Message Emmanuel BEZAGU 2016-06-17 14:03:26 replication synchrone