Simplify standby state machine a bit in WaitForWALToBecomeAvailable()

Поиск
Список
Период
Сортировка
От Bharath Rupireddy
Тема Simplify standby state machine a bit in WaitForWALToBecomeAvailable()
Дата
Msg-id CALj2ACW1FOsrAnXzbyJObacpJ0R=mOhfpHcwtu+hqwS6o7AR0w@mail.gmail.com
обсуждение исходный текст
Ответы Re: Simplify standby state machine a bit in WaitForWALToBecomeAvailable()  (Amul Sul <sulamul@gmail.com>)
Re: Simplify standby state machine a bit in WaitForWALToBecomeAvailable()  (Nathan Bossart <nathandbossart@gmail.com>)
Список pgsql-hackers
Hi,

In standby mode, the state machine in WaitForWALToBecomeAvailable()
reads WAL from pg_wal after failing to read from the archive. This is
currently implemented in XLogFileReadAnyTLI() by calling
XLogFileRead() with source XLOG_FROM_PG_WAL after it fails with source
XLOG_FROM_PG_ARCHIVE and the current source isn't changed at all.
Also, passing the source to XLogFileReadAnyTLI() in
WaitForWALToBecomeAvailable() isn't straight i.e. it's not necessary
to pass in XLOG_FROM_ANY at all. These things make the state machine a
bit complicated and hard to understand.

The attached patch attempts to simplify the code a bit by changing the
current source to XLOG_FROM_PG_WAL after failing in
XLOG_FROM_PG_ARCHIVE so that the state machine can move smoothly to
read from pg_wal. And we can just pass the current source to
XLogFileReadAnyTLI(). It also enables us to reduce a bit of extra
XLogFileRead() code in XLogFileReadAnyTLI().

Thoughts?

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

Вложения

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

Предыдущее
От: Peter Smith
Дата:
Сообщение: Re: Fix some newly modified tab-complete changes
Следующее
От: "wangw.fnst@fujitsu.com"
Дата:
Сообщение: RE: [PATCH] Use indexes on the subscriber when REPLICA IDENTITY is full on the publisher