Re: [Proposal] Fully WAL logged CREATE DATABASE - No Checkpoints
Andres Freund <andres@anarazel.de>
Hi, On 2022-08-04 18:05:25 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > Yea. I think at the very least we need to start holding interrupts before the > > DropDatabaseBuffers() and do so until commit. That's probably best done by > > doing the transaction commit inside dropdb. > > We've talked before about ignoring interrupts across commit, but > I find the idea a bit scary. I'm not actually suggesting to do so across commit, just until the commit. Maintaining that seems easiest if dropdb() does the commit internally. > In any case, DROP DATABASE is far from the only place with a problem. What other place has a database corrupting potential of this magnitude just because interrupts are accepted? We throw valid s_b contents away and then accept interrupts before committing - with predictable results. We also accept interrupts as part of deleting the db data dir (due to catalog access). Greetings, Andres Freund
Commits
-
When using the WAL-logged CREATE DATABASE strategy, bulk extend.
- 3e63e8462f31 16.0 landed
- 576bb0fc9342 15.0 landed
-
Avoid using a fake relcache entry to own an SmgrRelation.
- 1b94f8f232f6 15.0 landed
- 76733b399c49 16.0 landed
-
Fix data-corruption hazard in WAL-logged CREATE DATABASE.
- 692df425b688 16.0 landed
- 811203d4aff5 15.0 landed
-
initdb: When running CREATE DATABASE, use STRATEGY = WAL_COPY.
- ad43a413c4f7 15.0 landed
-
Simplify a needlessly-complicated regular expression.
- c6863b858291 15.0 landed
-
In 020_createdb.pl, change order of command-line arguments.
- 3d067c53b26d 15.0 landed
-
Add new block-by-block strategy for CREATE DATABASE.
- 9c08aea6a309 15.0 landed
-
Fix replay of create database records on standby
- 49d9cfc68bf4 15.0 cited
-
Refactor code for reading and writing relation map files.
- 39f0c4bd670c 15.0 landed
-
Replace RelationOpenSmgr() with RelationGetSmgr().
- f10f0ae420ee 15.0 cited
-
Refactor the fsync queue for wider use.
- 3eb77eba5a51 12.0 cited