From: | Paul Schlie <schlie(at)comcast(dot)net> |
---|---|
To: | <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Block-level CRC checks |
Date: | 2008-11-18 01:00:35 |
Message-ID: | C5477DE3.14B1D%schlie@comcast.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Heikki Linnakangas wrote:
>> Gregory Stark wrote:
>> However you still have a problem that someone could come along and set the
>> hint bit between calculating the CRC and actually calling write.
>
> The double-buffering will solve that.
Or simply require that hint bit writes acquire a write lock on the page
(which should be available if not being critically updated or flushed);
thereby to write/flush, simply do the same, calc it's crc, write/flush to
disk, then release it's lock; and which seems like the most reliable thing
to do (although no expert on pg's implementation by any means).
As I would guess although there may be occasional lock contention, its
likely minor, and greatly simplify the whole process it would seem?
(unless I misunderstand, even double buffering requires a lock, as if
multiple hint bits may be updated during the copy, the resulting copy may be
inconsistent if only partially reflecting the updates in progress)
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2008-11-18 01:53:13 | Re: [PATCHES] Infrastructure changes for recovery (v8) |
Previous Message | Tom Lane | 2008-11-18 00:48:07 | Re: xmlconcat as variadic function |