Re: Simplify standby state machine a bit in WaitForWALToBecomeAvailable()

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Simplify standby state machine a bit in WaitForWALToBecomeAvailable()
Date: 2022-12-30 18:32:57
Message-ID: 20221230183257.GA437226@nathanxps13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Oct 18, 2022 at 12:01:07PM +0530, Bharath Rupireddy wrote:
> 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().

This looks correct to me. The only thing that stood out to me was the loop
through 'tles' in XLogFileReadyAnyTLI. With this change, we'd loop through
the timelines for both XLOG_FROM_PG_ARCHIVE and XLOG_FROM_PG_WAL, whereas
now we only loop through the timelines once. However, I doubt this makes
much difference in practice. You'd only do the extra loop whenever
restoring from the archives failed.

Nathan Bossart
Amazon Web Services:

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2022-12-30 18:39:55 Re: Add index scan progress to pg_stat_progress_vacuum
Previous Message Chong Wang 2022-12-30 18:26:46 Question about initial logical decoding snapshot