From: | Yura Sokolov <y(dot)sokolov(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Suggest two small improvements for PITR. |
Date: | 2024-06-18 14:31:15 |
Message-ID: | 9c3a5503-6e9b-44a2-a064-c7b0e274e095@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
11.01.2024 19:58, Yura Sokolov пишет:
> Good day, hackers.
>
> Here I am to suggest two small improvements to Point In Time Recovery.
>
> First is ability to recover recovery-target-time with timestamp stored
> in XLOG_RESTORE_POINT. Looks like historically this ability did exist
> and were removed unintentionally during refactoring at commit [1]
> c945af80 "Refactor checking whether we've reached the recovery target."
>
> Second is extending XLOG_BACKUP_END record with timestamp, therefore
> backup will have its own timestamp as well. It is backward compatible
> change since there were no record length check before.
>
> Both changes slightly helps in mostly idle systems, when between several
> backups may happens no commits at all, so there's no timestamp to
> recover to.
>
> Attached sample patches are made in reverse order:
> - XLOG_BACKUP_END then XLOG_RESTORE_POINT.
> Second patch made by colleague by my idea.
> Publishing for both is permitted.
>
> If idea is accepted, patches for tests will be applied as well.
>
> [1]
> https://git.postgresql.org/gitweb/?p=postgresql.git;a=patch;h=c945af80
Good day.
Here're reordered and rebased patches with tests.
Now first patch is for XLOG_RETORE_POINT, and second one adds timestamp
to XLOG_BACKUP_END.
Btw, there's other thread by Simon Riggs with additions to
getRecordTimestamp:
I didn't rush to adsorb it, because I'm not recoveryTargetUseOriginTime.
Though reaction on XLOG_END_OF_RECOVERY's timestamp is easily could be
copied from.
I believe, to react on XLOG_CHECKPOINT_ONLINE/XLOG_CHECKPOINT_SHUTDOWN
the CheckPoint.time field should be changed from `pg_time_t` to
`TimestampTz` type, since otherwise it interfere hard with
"inclusive"-ness of recovery_target_time.
-----
regards,
Yura
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Restore-ability-to-react-on-timestamp-in-XLOG_RES.patch | text/x-patch | 4.4 KB |
v2-0002-Add-timestamp-to-XLOG_BACKUP_END.patch | text/x-patch | 6.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2024-06-18 14:31:16 | Re: CompilerWarnings task does not catch C++ warnings |
Previous Message | Maxim Orlov | 2024-06-18 14:29:13 | Re: Maybe don't process multi xmax in FreezeMultiXactId() if it is already marked as invalid? |