On Wed, Dec 29, 2021 at 5:29 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> https://github.com/macdice/postgres/tree/recovery-prefetch-ii
Here's a rebase. This mostly involved moving hunks over to the new
xlogrecovery.c file. One thing that seemed a little strange to me
with the new layout is that xlogreader is now a global variable. I
followed that pattern and made xlogprefetcher a global variable too,
for now.
There is one functional change: now I block readahead at records that
might change the timeline ID. This removes the need to think about
scenarios where "replay TLI" and "read TLI" might differ. I don't
know of a concrete problem in that area with the previous version, but
the recent introduction of the variable(s) "replayTLI" and associated
comments in master made me realise I hadn't analysed the hazards here
enough. Since timelines are tricky things and timeline changes are
extremely infrequent, it seemed better to simplify matters by putting
up a big road block there.
I'm now starting to think about committing this soon.