From: | Michael Banck <michael(dot)banck(at)credativ(dot)de> |
---|---|
To: | Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr> |
Cc: | Postgres hackers <pgsql-hackers(at)postgresql(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz> |
Subject: | Re: Offline enabling/disabling of data checksums |
Date: | 2019-01-08 12:03:25 |
Message-ID: | 1546949005.32387.11.camel@credativ.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Am Mittwoch, den 26.12.2018, 19:43 +0100 schrieb Fabien COELHO:
> > It adds an (now mandatory) --action parameter that takes either verify,
> > enable or disable as argument.
>
> I'd rather have explicit switches for verify, enable & disable, and verify
> would be the default if none is provided.
I changed that to the switches -c/--verify (-c for check as -v is taken,
should it be --check as well? I personally like verify better),
-d/--disable and -e/--enable.
> About the patch: applies, compiles, "make check" ok.
>
> There is no documentation.
Yeah, I'll write that once the CLI is settled.
> In "scan_file", I would open RW only for enable, but keep RO for verify.
OK, I've changed that.
> Also, the full page is rewritten... would it make sense to only overwrite
> the checksum part itself?
So just writing the page header? I find that a bit scary and don't
expect much speedup as the OS would write the whole block anyway I
guess? I haven't touched that yet.
> It seems that the control file is unlinked and then rewritten. If the
> rewritting fails, or the command is interrupted, the user has a problem.
>
> Could the control file be simply opened RW? Else, I would suggest to
> rename (eg add .tmp), write the new one, then unlink the old one, so that
> recovering the old state in case of problem is possible.
I have mostly taken the pg_rewind code here; if there was a function
that allowed for safe offline changes of the control file, I'd be happy
to use it but I don't think it should be this patch to invent that.
In any case, I have removed the unlink() now (not sure where that came
from), and changed it to open(O_WRONLY) same as in Michael's code and
pg_rewind.
V2 attached.
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
Attachment | Content-Type | Size |
---|---|---|
offline-activation-of-checksums_V2.patch | text/x-patch | 15.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitry Dolgov | 2019-01-08 12:08:15 | Re: Using POPCNT and other advanced bit manipulation instructions |
Previous Message | Padam Chopra | 2019-01-08 11:34:52 | GCI-2019 Mentoring |