Re: XLog changes for 9.3

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: XLog changes for 9.3
Date: 2012-06-07 16:53:58
Message-ID: 10252.1339088038@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> dance. If the record can be smeared over two pages there is no point in
> storing it aligned.

I think this is not true. The value of requiring alignment is that you
can read the record-length field without first having to copy it somewhere.
In particular, it will get really ugly if the record length field itself
could cross a page boundary. I think we want to be able to determine
the record length before we do any data copying, so that we can malloc
the record buffer and then just do one copy step.

The real reason for the current behavior of not letting the record
header get split across multiple pages is so that the length field is
guaranteed to be in the first page. We can still guarantee that if
we (1) put the length field first and (2) require at least int32
alignment. I think losing that property will be pretty bad though.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2012-06-07 16:57:07 Re: slow dropping of tables, DropRelFileNodeBuffers, tas
Previous Message Simon Riggs 2012-06-07 16:52:23 Re: Avoiding adjacent checkpoint records