Re: [REVIEW] pg_last_xact_insert_timestamp
От | Simon Riggs |
---|---|
Тема | Re: [REVIEW] pg_last_xact_insert_timestamp |
Дата | |
Msg-id | CA+U5nMLJ90XUUJcVG8xD9RdirNPXzyM630B81uX1+XQa=a1Snw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [REVIEW] pg_last_xact_insert_timestamp (Greg Smith <greg@2ndQuadrant.com>) |
Ответы |
Re: [REVIEW] pg_last_xact_insert_timestamp
|
Список | pgsql-hackers |
On Sat, Dec 10, 2011 at 12:29 PM, Greg Smith <greg@2ndquadrant.com> wrote: > "We can send regular special messages from WALSender to WALReceiver that do > not form part of the WAL stream, so we don't bulk > up WAL archives. (i.e. don't use "w" messages)." > > Here's my understanding of how this would work. Let me explain a little more and provide a very partial patch. We define a new replication protocol message 'k' which sends a keepalive from primary to standby when there is no WAL to send. The message does not form part of the WAL stream so does not bloat WAL files, nor cause them to fill when unattended. Keepalives contain current end of WAL and a current timestamp. Keepalive processing is all done on the standby and there is no overhead on a primary which does not use replication. There is a slight overhead on primary for keepalives but this happens only when there are no writes. On the standby we already update shared state when we receive some data, so not much else to do there. When the standby has applied up to the end of WAL the replication delay is receipt time - send time of keepalive. When standby receives a data packet it records WAL ptr and time. As standby applies each chunk it removes the record for each data packet and sets the last applied timestamp. If standby falls behind the number of data packet records will build up, so we begin to keep record every 2 packets, then every 4 packets etc. So the further the standby falls behind the less accurately we record the replication delay - though the accuracy remains proportional to the delay. To complete the patch I need to * send the keepalive messages when no WAL outstanding * receive the messages * store timestamp info for data and keepalives * progressively filter the messages if we get too many I will be working on this patch some more this week. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Вложения
В списке pgsql-hackers по дате отправления: