Обсуждение: Why we don't have checksums on clog files

Поиск
Список
Период
Сортировка

Why we don't have checksums on clog files

От
Alex Ignatov
Дата:
Hello!

Why we don't have checksums on clog files.

We have checksum on pg_control, optional checksumming on data files, 
some form of checksumming on wal's. But why we don't have any 
checksumming on clogs. Corruptions on clogs lead to transaction 
visisbility problems and database consistency violation.

Can anybody explain this situation with clogs?


-- 
Alex Ignatov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company




Re: Why we don't have checksums on clog files

От
Amit Kapila
Дата:
On Mon, Jun 6, 2016 at 8:43 PM, Alex Ignatov <a.ignatov@postgrespro.ru> wrote:
Hello!

Why we don't have checksums on clog files.

We have checksum on pg_control, optional checksumming on data files, some form of checksumming on wal's. But why we don't have any checksumming on clogs. Corruptions on clogs lead to transaction visisbility problems and database consistency violation.

Can anybody explain this situation with clogs?


I think it will be better if users can have an option to checksum clog pages.  However, I think that will need a change in page (CLOG-page) format which might not be a trivial work to accomplish.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Re: Why we don't have checksums on clog files

От
Alexander Korotkov
Дата:
On Tue, Jun 7, 2016 at 5:41 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:
On Mon, Jun 6, 2016 at 8:43 PM, Alex Ignatov <a.ignatov@postgrespro.ru> wrote:
Why we don't have checksums on clog files.

We have checksum on pg_control, optional checksumming on data files, some form of checksumming on wal's. But why we don't have any checksumming on clogs. Corruptions on clogs lead to transaction visisbility problems and database consistency violation.

Can anybody explain this situation with clogs?


I think it will be better if users can have an option to checksum clog pages.  However, I think that will need a change in page (CLOG-page) format which might not be a trivial work to accomplish.

I think we should think no only about CLOG, but about all SLRU pages.
For data pages we have to reinitialize database cluster to enable checksums. I think we can also require reinitialization to enable checksums of SLRU pages. Thus, major problem would be that number of items fitting to page would depend on whether checksums are enabled.  However, it shouldn't too hard.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company 

Re: Why we don't have checksums on clog files

От
Robert Haas
Дата:
On Tue, Jun 7, 2016 at 10:41 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> I think it will be better if users can have an option to checksum clog
> pages.  However, I think that will need a change in page (CLOG-page) format
> which might not be a trivial work to accomplish.

Doesn't the pd_checksum field exist on SLRU pages also?  If so, we
could just start using it.

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



Re: Why we don't have checksums on clog files

От
Tom Lane
Дата:
Robert Haas <robertmhaas@gmail.com> writes:
> On Tue, Jun 7, 2016 at 10:41 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>> I think it will be better if users can have an option to checksum clog
>> pages.  However, I think that will need a change in page (CLOG-page) format
>> which might not be a trivial work to accomplish.

> Doesn't the pd_checksum field exist on SLRU pages also?

Uh, no.

(I don't think that's an inherent property of slru.c, but definitely
clog.c packs the pages totally fully of xact status bits.  See
CLOG_XACTS_PER_PAGE.)
        regards, tom lane



Re: Why we don't have checksums on clog files

От
Robert Haas
Дата:
On Sun, Jun 12, 2016 at 10:54 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Tue, Jun 7, 2016 at 10:41 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>>> I think it will be better if users can have an option to checksum clog
>>> pages.  However, I think that will need a change in page (CLOG-page) format
>>> which might not be a trivial work to accomplish.
>
>> Doesn't the pd_checksum field exist on SLRU pages also?
>
> Uh, no.
>
> (I don't think that's an inherent property of slru.c, but definitely
> clog.c packs the pages totally fully of xact status bits.  See
> CLOG_XACTS_PER_PAGE.

Oh.  Well, that makes it harder, then.

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