Re: Does PostgreSQL check database integrity at startup?

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Alban Hertroys <haramrae(at)gmail(dot)com>
Cc: Jan Wieck <jan(at)wi3ck(dot)info>, Edson Carlos Ericksson Richter <richter(at)simkorp(dot)com(dot)br>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Does PostgreSQL check database integrity at startup?
Date: 2017-12-30 15:27:16
Message-ID: 20171230152716.GH2416@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Greetings Alban,

* Alban Hertroys (haramrae(at)gmail(dot)com) wrote:
> In fact, I don't see it mentioned explicitly anywhere, but are we actually looking at a problem?

From the discussion in the google barman group, it's clear that the file
shouldn't be zero bytes in this specific case.

> I'm not convinced by the argument that a CRC check of a 0 byte file on a standby would not detect corruption. At the least, the CRC would be different or we would be left with a CRC on the master that we can't match any CRC's on the slave to if the file is larger on the master.

As discussed, files on the primary can be different at a byte level from
those on replicas and still be perfectly valid and correct, for a
variety of reasons from hint bit differences to differences due to the
replica not being at exactly the same point as the primary.

> If CRC's can be relied on to detect corruption (which they were designed to do), then that answers Edson's question.

The checksums included in PG are page-level and therefore there simply
isn't one to look at if the file is zero bytes.

Thanks!

Stephen

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Melvin Davidson 2017-12-30 16:19:24 Re: Does PostgreSQL check database integrity at startup?
Previous Message Alban Hertroys 2017-12-30 11:25:08 Re: Does PostgreSQL check database integrity at startup?