Re: trying again to get incremental backup
Robert Haas <robertmhaas@gmail.com>
Attachments
- v13-0001-Move-src-bin-pg_verifybackup-parse_manifest.c-in.patch (application/octet-stream) patch v13-0001
- v13-0004-Add-new-pg_walsummary-tool.patch (application/octet-stream) patch v13-0004
- v13-0005-Test-patch-Enable-summarize_wal-by-default.patch (application/octet-stream) patch v13-0005
- v13-0002-Add-a-new-WAL-summarizer-process.patch (application/octet-stream) patch v13-0002
- v13-0003-Add-support-for-incremental-backup.patch (application/octet-stream) patch v13-0003
On Mon, Dec 4, 2023 at 3:58 PM Robert Haas <robertmhaas@gmail.com> wrote: > Considering all this, what I'm inclined to do is go and put > UPLOAD_MANIFEST back, instead of INCREMENTAL_WAL_RANGE, and adjust > accordingly. But first: does anybody see more problems here that I may > have missed? OK, so here's a new version with UPLOAD_MANIFEST put back. I wrote a long comment explaining why that's believed to be necessary and sufficient. I committed 0001 and 0002 from the previous series also, since it doesn't seem like anyone has further comments on those renamings. This version also improves (at least, IMHO) the way that we wait for WAL summarization to finish. Previously, you either caught up fully within 60 seconds or you died. I didn't like that, because it seemed like some people would get timeouts when the operation was slowly progressing and would eventually succeed. So what this version does is: - Every 10 seconds, it logs a warning saying that it's still waiting for WAL summarization. That way, a human operator can understand what's happening easily, and cancel if they want. - If 60 seconds go by without the WAL summarizer ingesting even a single WAL record, it times out. That way, if the WAL summarizer is dead or totally stuck (e.g. debugger attached, hung I/O) the user won't be left waiting forever even if they never cancel. But if it's just slow, it probably won't time out, and the operation should eventually succeed. To me, this seems like a reasonable compromise. It might be unreasonable if WAL summarization is proceeding at a very low but non-zero rate. But it's hard for me to think of a situation where that will happen, with the exception of when CPU or I/O are badly overloaded. But in those cases, the WAL generation rate is probably also not that high, because apparently the system is paralyzed, so maybe the wait won't even be that bad, especially given that everything else on the box should be super-slow too. Plus, even if we did want to time out in such a case, it's hard to know how slow is too slow. In any event, I think most failures here are likely to be complete failures, where the WAL summarizer just doesn't, so the fact that this times out in those cases seems to me to likely be as much as we need to do here. But if someone sees a problem with this or has a clever idea how to make it better, I'm all ears. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
Minor fixes to pg_combinebackup and its documentation.
- 1713e3d6cd39 17.0 cited
-
Fix defects in PrepareForIncrementalBackup.
- dffde5bf16a5 17.0 landed
-
Add WALSummarizerLock to wait_event_names.txt
- 5c430f9dc559 17.0 landed
-
Initialize variable to placate compiler.
- da083b20f637 17.0 landed
-
Replace nonsense comment with a relevant one.
- ffc6ab9b56ae 17.0 landed
-
Fix numerous typos in incremental backup commits.
- 49f2194ed5c1 17.0 landed
-
Add support for incremental backup.
- dc212340058b 17.0 landed
-
Add a new WAL summarizer process.
- 174c480508ac 17.0 landed
-
Move src/bin/pg_verifybackup/parse_manifest.c into src/common.
- aafc07c7a191 17.0 landed
-
Fix brown paper bag bug in 5c47c6546c413d5eb51c1626070a807026e6139d.
- 47f01d727e3a 17.0 landed
-
Rename pg_verifybackup's JsonManifestParseContext callback functions.
- 278eb13c4823 17.0 landed
-
Rename JsonManifestParseContext callbacks.
- d463aa06a9a8 17.0 landed
-
Change how a base backup decides which files have checksums.
- 025584a168a4 17.0 landed
-
Change struct tablespaceinfo's oid member from 'char *' to 'Oid'
- 5b36e8f078a3 17.0 landed
-
Refactor parse_filename_for_nontemp_relation to parse more.
- 5c47c6546c41 17.0 landed
-
During online checkpoints, insert XLOG_CHECKPOINT_REDO at redo point.
- afd12774ae89 17.0 landed
-
In basebackup.c, refactor to create read_file_data_into_buffer.
- c2ba3fdea593 17.0 landed
-
In basebackup.c, refactor to create verify_page_checksum.
- 053183138a7a 17.0 landed
-
Report syncscan position at end of scan.
- e8d74ad625f7 17.0 cited
-
Exclude additional directories in pg_basebackup
- 6ad8ac602628 10.0 cited
-
Add new JSON processing functions and parser API.
- a570c98d7fa0 9.3.0 cited