Re: Online enabling of page level checksums

From: Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com>
To: David Christensen <david(at)endpoint(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: PostgreSQL-development Hackers <pgsql-hackers(at)postgresql(dot)org>, Magnus Hagander <magnus(at)hagander(dot)net>
Subject: Re: Online enabling of page level checksums
Date: 2017-01-24 01:09:37
Message-ID: 91745d06-5d2b-8747-a47d-4f279ae24b51@BlueTreble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 1/23/17 1:11 PM, David Christensen wrote:
>> I’m not sure that this will work as-is, unless we’re forcing VACUUM to ignore the visibility map. I had originally considered having this sit on top of VACUUm though, we just need a way to iterate over all relations and read every page.
> Another issue with this (that I think would still exist with the bgworker approach) is how to handle databases with datallowconn = 0. `vacuumdb`, at least, explicitly filters out these rows when iterating over databases to connect to, so while we could enable them for all databases, we can’t enable for the cluster without verifying that these disallowed dbs are already checksummed.

For a first pass, I think it's acceptable for autovac and vac to notice
if a relation needs checksums computed and ignore the VM in that case
(make sure it's ignoring all frozen bits too).

Likewise, for right now I think it's OK to force users that are enabling
this to manually connect to datallowcon=false and run vacuum.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2017-01-24 01:15:43 Re: Checksums by default?
Previous Message Tatsuo Ishii 2017-01-24 00:55:41 Re: Fix a comment in feelist.c