Re: Suggest two small improvements for PITR.
От | Yura Sokolov |
---|---|
Тема | Re: Suggest two small improvements for PITR. |
Дата | |
Msg-id | 9c3a5503-6e9b-44a2-a064-c7b0e274e095@postgrespro.ru обсуждение исходный текст |
Ответ на | Suggest two small improvements for PITR. (Yura Sokolov <y.sokolov@postgrespro.ru>) |
Список | 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: https://www.postgresql.org/message-id/flat/CANbhV-F%2B8%3DY%3DcfurfD2hjoWVUvTk-Ot9BJdw2Myc%3Dst3TsZy9g%40mail.gmail.com 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
Вложения
В списке pgsql-hackers по дате отправления: