Re: Online checksums patch - once again

From: Michael Banck <michael(dot)banck(at)credativ(dot)de>
To: Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, Michael Paquier <michael(at)paquier(dot)xyz>, Andres Freund <andres(at)anarazel(dot)de>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Online checksums patch - once again
Date: 2021-01-05 17:19:31
Message-ID: 5ff49fa4.1c69fb81.658f3.04ac@mx.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Tue, Jan 05, 2021 at 12:18:07AM +0100, Daniel Gustafsson wrote:
> > On 3 Dec 2020, at 10:37, Daniel Gustafsson <daniel(at)yesql(dot)se> wrote:
> > I've also done some tweaks to the tests to make them more robust as well as
> > comment updates and general tidying up here and there.
>
> Attached is a rebase of the patch on top of current HEAD.

I only looked through the documentation this time, and have one
suggestion:

> diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml
> index 385ac25150..e3b0048806 100644
> --- a/doc/src/sgml/ref/initdb.sgml
> +++ b/doc/src/sgml/ref/initdb.sgml
> @@ -219,6 +219,7 @@ PostgreSQL documentation
> failures will be reported in the
> <link linkend="monitoring-pg-stat-database-view">
> <structname>pg_stat_database</structname></link> view.
> + See <xref linkend="checksums" /> for details.
> </para>
> </listitem>
> </varlistentry>

> diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml
> index f4bc147b10..5dcfcdd2ff 100644
> --- a/doc/src/sgml/wal.sgml
> +++ b/doc/src/sgml/wal.sgml
> @@ -230,6 +230,103 @@
> </para>
> </sect1>
>
> + <sect1 id="checksums">
> + <title>Data Checksums</title>
> + <indexterm>
> + <primary>checksums</primary>
> + </indexterm>
> +
> + <para>
> + Data pages are not checksum protected by default, but this can optionally be
> + enabled for a cluster. When enabled, each data page will be assigned a
> + checksum that is updated when the page is written and verified every time
> + the page is read. Only data pages are protected by checksums, internal data
> + structures and temporary files are not.
> + </para>
> +
> + <para>
> + Checksums are normally enabled when the cluster is initialized using <link
> + linkend="app-initdb-data-checksums"><application>initdb</application></link>.
> + They can also be enabled or disabled at a later time, either as an offline
> + operation or in a running cluster. In all cases, checksums are enabled or
> + disabled at the full cluster level, and cannot be specified individually for
> + databases or tables.
> + </para>
> +
> + <para>
> + The current state of checksums in the cluster can be verified by viewing the
> + value of the read-only configuration variable <xref
> + linkend="guc-data-checksums" /> by issuing the command <command>SHOW
> + data_checksums</command>.
> + </para>
> +
> + <para>
> + When attempting to recover from corrupt data it may be necessary to bypass
> + the checksum protection in order to recover data. To do this, temporarily
> + set the configuration parameter <xref linkend="guc-ignore-checksum-failure" />.
> + </para>

I think the above is rather informative about checksums in general and
not specific to online activation of checksusm, so could pretty much be
committed verbatim right now, except for the "either as an offline
operation or in a running cluster" bit which would have to be rewritten.

> +
> + <sect2 id="checksums-offline-enable-disable">
> + <title>Off-line Enabling of Checksums</title>
> +
> + <para>
> + The <link linkend="app-pgchecksums"><application>pg_checksums</application></link>
> + application can be used to enable or disable data checksums, as well as
> + verify checksums, on an offline cluster.
> + </para>
> +
> + </sect2>
> + </sect1>
> +
> <sect1 id="wal-intro">
> <title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>

This as well.

Michael

--
Michael Banck
Projektleiter / Senior Berater
Tel.: +49 2166 9901-171
Fax: +49 2166 9901-100
Email: michael(dot)banck(at)credativ(dot)de

credativ GmbH, HRB Mönchengladbach 12080
USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer

Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2021-01-05 17:21:09 Re: Moving other hex functions to /common
Previous Message Jeff Davis 2021-01-05 17:17:18 Replication protocol pipelining edge case