- Bugfix: reading of compressed WAL files was very slow, it happened because xlogreader was in habit of reading XLOG page twice, which breaks zlib optimization for sequential access. See https://commitfest.postgresql.org/22/1994 for additional info. Reported by Alex Ignatov.
- Bugfix: previously path to PGDATA was not canonicalized. On Windows this could lead to producing empty backups. Additionally during investigation another bug was found: readdir() silently ignored 'permission denied' errors. See https://www.postgresql.org/message-id/2cad7829-8d66-e39c-b937-ac825db5203d%40postgrespro.ru for additional info. Reported by Yuri Kurenkov.
- Bugfix: archive-push didn`t use O_EXCL flag when creating '.partial' file, in rare case of two PostgreSQL instances concurrently pushing the same WAL segment it could lead to corruption of pushed WAL segment.
- Minor bugfix: disappeared during backup files were marked as 'not changed', now they just evicted from file list.
- Minor bugfix: skip 'log' directory during backup for PG >= 10. Reported by triwada.
- Improvement: previously locking was done at instance level, because of that concurrent operations were impossible, now it is done at the backup level, so restore of backup A won`t interfere with validation of backup B.
- Improvement: previously restore was relying on sort order when restoring incremental backups, now it`s relying on parent chain.
- Minor improvement: when using show command "Time" for RUNNING backups now calculated on the fly.
- Minor improvement: START LSN of backup now written to backup meta right after receiving, not at the end of the backup. It will be needed for "resume" feature.
- Bugfix: fixed undefined behaviour in case of undefined compression algorithm
- Bugfix: correctly calculate backup size after MERGE
- Bugfix: fixed MERGE of compressed and uncompressed backups
- Bugfix: remove unnecessary remaining files after MERGE
- Bugfix: consider target LSN (--lsn parameter) during validating WAL
- Improvement: check backup program_version during VALIDATE, do not support forward compatibility
- Improvement: improve Windows support
- Improvement: improve support of tablespaces within PGDATA
- Major bugfix: incorrect handling of badly compressed blocks, previously there was a risk to restore block in uncompressed state, if compressed size was equal or larger than BLCKSZ
- Impromevent: backup from replica >= 9.6 no longer need connection to master
- Workaround: wrong minRecPoint in PostgreSQL thanks to commit 8d68ee6(block from future), overwrite minRecPoint with latest applied LSN
- Impromevent: merge is now considered stable feature
- Impromevent: validation now use more conservative and paranoid approach to file validation, during validation pg_probackup also check block checksumm, make sanity check based on block header information and try to detect blocks from future
- New validate/restore options:
'--skip-block-validation' - disable aforementioned approach to file validation
- Multiple minor fixes
- Calculate checksum for backuped files using CRC-32, validate pre 2.0.22 backups using CRC-32C
- Do not backup unchanged _vm,_fsm, pg_clog, pg_multixact, etc files
- Write program-version only during backup
- Minor fixes and bug fixes