pgsql: Reduce spurious Hot Standby conflicts from never-visible records

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Reduce spurious Hot Standby conflicts from never-visible records
Date: 2010-12-10 07:00:42
Message-ID: E1PQwyA-0006L7-EO@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Reduce spurious Hot Standby conflicts from never-visible records.
Hot Standby conflicts only with tuples that were visible at
some point. So ignore tuples from aborted transactions or for
tuples updated/deleted during the inserting transaction when
generating the conflict transaction ids.

Following detailed analysis and test case by Noah Misch.
Original report covered btree delete records, correctly observed
by Heikki Linnakangas that this applies to other cases also.
Fix covers all sources of cleanup records via common code.
Includes additional fix compared to commit on HEAD

Branch
------
REL9_0_STABLE

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=a804a23e7af0e075b88e7b03bfd9b0f22d2657b2

Modified Files
--------------
src/backend/access/heap/heapam.c | 31 +++++++++++++++++++++++--------
src/backend/access/heap/pruneheap.c | 1 -
src/backend/access/nbtree/nbtxlog.c | 19 +++++--------------
3 files changed, 28 insertions(+), 23 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2010-12-10 16:36:40 pgsql: Fix efficiency problems in tuplestore_trim().
Previous Message Tom Lane 2010-12-09 18:04:55 pgsql: Eliminate O(N^2) behavior in parallel restore with many blobs.

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitriy Igrishin 2010-12-10 07:53:33 Fwd: Extended query protocol and exact types matches.
Previous Message aaliya zarrin 2010-12-10 06:51:23 Re: To Signal The postmaster