Releases: arenadata/gpbackup
Releases · arenadata/gpbackup
1.29.4_arenadata8
What's Changed
- ADBDEV-4597: Run gpbackup unit-tests on github actions by @RekGRpth in #54
- ADBDEV-4534 Implement gpdb 7 support for gpbackup ordering patch by @dnskvlnk in #56
Full Changelog: 1.29.4_arenadata7...1.29.4_arenadata8
1.29.4_arenadata7
Fix pipe recreation when restoring to smaller cluster (#50) Restoring the same table to smaller cluster is logically divided to batches. Each batch (one or more) represents a segment's data from larger cluster. The writer (gprestore helper) writes batches to pipe while the reader (COPY command initiated by gprestore) reads and applies all data from it. If reader is fast enough, there can be a race between it and writer. For the next batch, reader can open flushed, but not yet deleted pipe. This cause writer to wait endlessly on ENXIO loop and reader to wait on deleted pipe. The solution is to recreate pipe before flushing. The reader still able to read from such unlinked pipe and the next reader loop will open a new pipe with the same name. I spent much time trying to find an explanation of "data holdover bug" mentioned in pipe recreation comment. To save our time in the future, I decided to update a comment to clear this problem too. The comment also highlights general suboptimality of current solution with a plan of future refactoring. I found no easy way to automate testing of this race condition. To prove a bug, I advice to add a sleep after flush on non-patched version. Performing a restore from larger to smaller after this will cause the restore process to hang.
1.29.4_arenadata6
Merge pull request #39 from arenadata/1.29.4-sync Sync 1.29.4 changes
1.29.2_arenadata6
Merge pull request #36 from arenadata/1.29.2-sync Sync 1.29.2 changes
1.29.1_arenadata6
Backup privilege statements as separate entries (#31) Before patch, all privilege statements placed in metadata file as one pre-data section entry. `editStatementsRedirectSchema()`, used by schema redirection, replace only first schema name occurrence in entry. This caused a bug - only first privilege statement was modifed. This, in turn, caused vaious errors. `gprestore`, used on same database, applied most of privilege statements to original schema. Or, when used on different database, caused `schema does not exist` error. From now, `GetPrivilegesStatements()` returns a set of separate statements, which later used as separate entries. `strings.TrimSpace()` was removed as all statements are already trimmed. Existed tests were modified as separate entries have different format. New test shows correct privilege applying.
1.28.0_arenadata6
Merge pull request #26 from arenadata/1.28.0-sync ADBDEV-3822 1.28.0 sync
1.27.0_arenadata6
Merge pull request #25 from arenadata/1.27.0-sync ADBDEV-3299 1.27.0 sync
1.25.0_arenadata6
ADBDEV-2901 Fix order of restoring metadata (#23) Initially, gpbackup created consistent copies of databases, ordering all object by oid, which created a correct sequence of objects. But in ADBDEV-1973 (#9) the backup order was changed and the objects started to be sorted by their size, which broke the logic of backup process. This patch restores ordering by oid, but doesn't break order based on relation size, because gpbackup stores two different lists of metadata and data objects. This patch reorders metadata only, so all objects can be correclty restored, but doesn't alter data objects order, so the data can be recovered in any desired way.
1.25.0_arenadata5
Merge pull request #21 from arenadata/1.25.0-sync ADBDEV-2798 1.25.0 sync
1.24.0_arenadata5
Merge pull request #19 from arenadata/1.24.0-sync ADBDEV-2506 1.24.0 sync