Thread: pgsql: Allow WAL record header to be split across pages.

pgsql: Allow WAL record header to be split across pages.

From
Heikki Linnakangas
Date:
Allow WAL record header to be split across pages.

This saves a few bytes of WAL space, but the real motivation is to make it
predictable how much WAL space a record requires, as it no longer depends
on whether we need to waste the last few bytes at end of WAL page because
the header doesn't fit.

The total length field of WAL record, xl_tot_len, is moved to the beginning
of the WAL record header, so that it is still always found on the first page
where a WAL record begins.

Bump WAL version number again as this is an incompatible change.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/061e7efb1b4c5b8a5d02122b7780531b8d5bf23d

Modified Files
--------------
src/backend/access/transam/xlog.c   |  344 ++++++++++++++++++++---------------
src/bin/pg_resetxlog/pg_resetxlog.c |    3 +-
src/include/access/xlog.h           |    9 +-
src/include/access/xlog_internal.h  |    6 +-
4 files changed, 207 insertions(+), 155 deletions(-)