Re: COMMIT NOWAIT Performance Option - Mailing list pgsql-hackers

From Jonah H. Harris
Subject Re: COMMIT NOWAIT Performance Option
Date
Msg-id 36e682920702271943s49cb6986vd01adefeea71ab19@mail.gmail.com
Whole thread Raw
In response to Re: COMMIT NOWAIT Performance Option  (Gregory Stark <stark@enterprisedb.com>)
Responses Re: COMMIT NOWAIT Performance Option  (Gregory Stark <stark@enterprisedb.com>)
List pgsql-hackers
On 2/27/07, Gregory Stark <stark@enterprisedb.com> wrote:
> I suggested a while back implementing torn page detection by writing a
> sequential number ever 512 bytes in the blocks. (I was talking about WAL at
> the time but the same principle applies.) Do it at the smgr layer using
> readv/writev and the upper layers need never know their data wasn't contiguous
> on disk. The only effect would be to shorten page sizes by 16 bytes which
> would be annoying but much less so than full_page_writes.

First, rather than using 16-bytes per page and having to deal with
handling the non-contiguous space, why not just use a page-level
checksum like everyone else?  Most of the systems I've seen seem to
employ a simple CRC16 or CRC32.

Second, unless I'm missing something, I don't see how your algorithm
is going to work as each 512 byte chunk of the block will *always*
have the same sequential byte value.  That is, unless you have some
way of preventing wraparound at 255 without adding additional block
overhead.

Lastly, from a performance perspective, it's going to be faster to
compute the entire page's checksum than it would be to check the
sequence every 512 bytes and perform the space adjustment.

-- 
Jonah H. Harris, Software Architect | phone: 732.331.1324
EnterpriseDB Corporation            | fax: 732.331.1301
33 Wood Ave S, 3rd Floor            | jharris@enterprisedb.com
Iselin, New Jersey 08830            | http://www.enterprisedb.com/


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PATCHES]
Next
From: Tom Lane
Date:
Subject: Re: Resumable vacuum proposal and design overview