Start Walreceiver completely before shut down it on standby server.

Поиск
Список
Период
Сортировка
От jiankang liu
Тема Start Walreceiver completely before shut down it on standby server.
Дата
Msg-id CAJ+DhQaf9ZMkqPPnapu06mvMFe-b_K4NGF+-MV+e=JB2edF4cQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Start Walreceiver completely before shut down it on standby server.  (Ashwin Agrawal <aagrawal@pivotal.io>)
Список pgsql-hackers
Start Walreceiver completely before shut down it on standby server.

The walreceiver will be shut down, when read an invalid record in the
WAL streaming from master.And then, we retry from archive/pg_wal again.

After that, we start walreceiver in RequestXLogStreaming(), and read
record from the WAL streaming. But before walreceiver starts, we read
data from file which be streamed over and present in pg_wal by last
time, because of walrcv->receivedUpto > RecPtr and the wal is actually
flush on disk. Now, we read the invalid record again, what the next to
do? Shut down the walreceiver and do it again.

So, we always read the invalid record, starting the walreceiver and make
it down before it starts completely.

This code fix it by set the walrcv->receivedUpto to the starting point,
we can read nothing before the walreceiver starts and streaming.
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: Windows UTF-8, non-ICU collation trouble
Следующее
От: Rushabh Lathia
Дата:
Сообщение: Re: backup manifests