Re: block-level incremental backup
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Jeevan Chalke <jeevan.chalke@enterprisedb.com>,
Dilip Kumar <dilipbalaut@gmail.com>, vignesh C <vignesh21@gmail.com>,
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>, Stephen Frost <sfrost@snowman.net>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-09-16T15:52:56Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Don't call data type input functions in GUC check hooks
- 21f428ebde39 12.0 cited
On Mon, Sep 16, 2019 at 9:30 AM Robert Haas <robertmhaas@gmail.com> wrote: > > Isn't some operations where at the end we directly call heap_sync > > without writing WAL will have a similar problem as well? > > Maybe. Can you give an example? Looking through the code, I found two cases where we do this. One is a bulk insert operation with wal_level = minimal, and the other is CLUSTER or VACUUM FULL with wal_level = minimal. In both of these cases we are generating new blocks whose LSNs will be 0/0. So, I think we need a rule that if the server is asked to back up all blocks in a file with LSNs > some threshold LSN, it must also include any blocks whose LSN is 0/0. Those blocks are either uninitialized or are populated without WAL logging, so they always need to be copied. Outside of unlogged and temporary tables, I don't know of any case where make a critical modification to an already-existing block without bumping the LSN. I hope there is no such case. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company