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
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 |