On 2021-Feb-19, Bossart, Nathan wrote:
> 0002 adds logic for persisting the last notified segment through
> crashes. This is needed because a poorly-timed crash could otherwise
> cause us to skip marking segments as ready-for-archival altogether.
> This file is only used for primary servers, as there exists a separate
> code path for marking segments as ready-for-archive for standbys.
I'm not sure I understand what's the reason not to store this value in
pg_control; I feel like I'm missing something. Can you please explain?
There were some comments earlier in the thread about the maximum size of
a record. As I recall, you can have records of arbitrary size if you
have COMMIT with a large number of relation invalidation messages being
included in the xlog record, or a large number of XIDs of
subtransactions in the transaction. Spanning several segments is
possible, AFAIU.
--
Álvaro Herrera 39°49'30"S 73°17'W — https://www.EnterpriseDB.com/
"La rebeldía es la virtud original del hombre" (Arthur Schopenhauer)