Re: Block-level CRC checks - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: Block-level CRC checks
Date
Msg-id 4909D5BF.6060007@sun.com
Whole thread Raw
In response to Re: Block-level CRC checks  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: Block-level CRC checks
List pgsql-hackers
Alvaro Herrera napsal(a):
> Zdenek Kotala wrote:
>> Alvaro Herrera napsal(a):
>>> Simon Riggs wrote:
>>>
>>>> But perhaps writing a single WAL record if you scan whole page and set
>>>> all bits at once. Then it makes sense in some cases.
>>> So this is what I ended up doing; attached.
>> Please, DO NOT MOVE position of page version in PageHeader structure!
> 
> Hmm.  The only way I see we could do that is to modify the checksum
> struct member to a predefined value before calculating the page's
> checksum.
> 
> Ah, actually there's another alternative -- leave the checksum on its
> current position (start of struct) and move other members below
> pg_pagesize_version (leaning towards pd_tli and pd_flags).  That'd leave
> the page version in the same position.
> 
> (Hmm, maybe it's better to move pd_lower and pd_upper?)

No, please, keep pd_lower and pd_upper on same position. They are accessed more 
often than pd_tli and pd_flags. It is better for optimization.

By the way, do you need CRC as a first page member? Is it for future development 
like CLOG integration into buffers? Why not put it on the end as and mark it as 
a special? It will reduce space requirement when CRC is not enabled.
    Zdenek


-- 
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql



pgsql-hackers by date:

Previous
From: Gregory Stark
Date:
Subject: Re: Block-level CRC checks
Next
From: Tom Lane
Date:
Subject: Re: WIP patch: convert SQL-language functions to return tuplestores