Re: Performance Improvement by reducing WAL for Update Operation

From: Greg Smith <greg(at)2ndQuadrant(dot)com>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: Hari Babu <haribabu(dot)kommi(at)huawei(dot)com>, 'Amit Kapila' <amit(dot)kapila(at)huawei(dot)com>, 'Mike Blackwell' <mike(dot)blackwell(at)rrd(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Performance Improvement by reducing WAL for Update Operation
Date: 2013-07-22 20:23:04
Message-ID: 51ED94A8.1030202@2ndQuadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 7/22/13 2:57 PM, Andres Freund wrote:
> * I'd be very surprised if this doesn't make WAL replay of update heavy
> workloads slower by at least factor of 2.

I was thinking about what a benchmark of WAL replay would look like last
year. I don't think that data is captured very well yet, and it should be.

My idea was to break the benchmark into two pieces. One would take a
base backup, then run a series of tests and archive the resulting the
WAL. I doubt you can make a useful benchmark here without a usefully
populated database, that's why the base backup step is needed.

The first useful result then is to measure how long commit/archiving
took and the WAL volume, which is what's done by the test harness for
this program. Then the resulting backup would be setup for replay.
tarring up the backup and WAL archive could even give you a repeatable
test set for ones where it's only replay changes happening. Then the
main number that's useful, total replay time, would be measured.

The main thing I wanted this for wasn't for code changes; it was to
benchmark configuration changes. I'd like to be able to answer
questions like "which I/O scheduler is best for a standby" in a way that
has real test data behind it. The same approach should useful for
answering your concerns about the replay performance impact of this
change too though.

> * It makes changeset extraction either more expensive or it would have
> to be disabled there.

That argues that if committed at all, the ability to turn this off I was
asking about would be necessary. It sounds like this *could* work like
how minimal WAL archiving levels allow optimizations that are disabled
at higher ones--like the COPY into a truncated/new table cheat.

--
Greg Smith 2ndQuadrant US greg(at)2ndQuadrant(dot)com Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2013-07-22 20:23:14 Re: [HACKERS] getting rid of SnapshotNow
Previous Message Alvaro Herrera 2013-07-22 20:21:37 Re: new "row-level lock" error messages