pgsql: Only WAL-log the modified portion in an UPDATE, if possible.

From: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Only WAL-log the modified portion in an UPDATE, if possible.
Date: 2014-03-12 21:30:28
Message-ID: E1WNqjM-0003cz-EL@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Only WAL-log the modified portion in an UPDATE, if possible.

When a row is updated, and the new tuple version is put on the same page as
the old one, only WAL-log the part of the new tuple that's not identical to
the old. This saves significantly on the amount of WAL that needs to be
written, in the common case that most fields are not modified.

Amit Kapila, with a lot of back and forth with me, Robert Haas, and others.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/a3115f0d9ec1ac93b82156535dc00b10172a4fe7

Modified Files
--------------
src/backend/access/heap/heapam.c | 307 +++++++++++++++++++++++++++++--------
src/backend/access/transam/xlog.c | 23 +++
src/include/access/heapam_xlog.h | 19 ++-
src/include/access/xlog.h | 1 +
4 files changed, 285 insertions(+), 65 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2014-03-12 22:03:08 Re: pgsql: Only WAL-log the modified portion in an UPDATE, if possible.
Previous Message Heikki Linnakangas 2014-03-12 18:54:56 pgsql: Items on GIN data pages are no longer always 6 bytes; update gin