Re: [WIP] Performance Improvement by reducing WAL for Update Operation

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Simon Riggs <simon(at)2ndQuadrant(dot)com>
Cc: Amit Kapila <amit(dot)kapila(at)huawei(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [WIP] Performance Improvement by reducing WAL for Update Operation
Date: 2012-08-09 10:30:48
Message-ID: 50239158.6010601@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 09.08.2012 12:18, Simon Riggs wrote:
> On 9 August 2012 09:49, Amit Kapila<amit(dot)kapila(at)huawei(dot)com> wrote:
>
>> WAL reduction is done for the case even when old and new are on different
>> data blocks as well.
>
> That makes me feel nervous. I doubt the marginal gain is worth it.
> Most updates don't cross blocks.

That was my first instinctive reaction too. But if the mechanism works
just as well for cross-page updates, seems a bit strange to not use it.

One argument would be that if for some reason the old block is corrupt
or lost, you would not be able to recover the new version of the tuple
from the WAL alone. At the moment, it's nice that the WAL record
contains all the information required to reconstruct the new tuple,
regardless of the old data block contents. But then again, full-page
writes cover that too. There will be a full-page image of the old block
in the WAL anyway.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2012-08-09 11:11:54 Re: [WIP] Performance Improvement by reducing WAL for Update Operation
Previous Message Simon Riggs 2012-08-09 10:14:33 Re: patch submission: truncate trailing nulls from heap rows to reduce the size of the null bitmap