Re: Why are we PageInit'ing buffers in RelationAddExtraBlocks()?

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2018-12-19T23:04:26Z
Lists: pgsql-hackers
On Wed, Dec 19, 2018 at 5:37 PM Andres Freund <andres@anarazel.de> wrote:
> What's gained by the logic of emitting that warning in VACUUM after a
> crash? I don't really see any robustness advantages in it.  If the logic
> were that we'd never reuse empty pages because they can hide corruption
> that normally would discovered by checksums, then we shouldn't
> reinitialize them at all and instead error out hard - but we can't do
> that, because it's normal that they occur.  Right now we have empty
> pages on-disk whenever a busy server is restarted in immediate mode,
> after all.

I don't know.  I am just normally reluctant to change things
precipitously that are of long tenure.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Commits

  1. Move page initialization from RelationAddExtraBlocks() to use, take 2.

  2. Fix race condition between relation extension and vacuum.

  3. Move page initialization from RelationAddExtraBlocks() to use.