Cmpact commits and changeset extraction

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Cmpact commits and changeset extraction
Date: 2013-09-30 14:50:28
Message-ID: 20130930145028.GA30125@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Changeset extraction only works in the context of a single database but
has to scan through xlog records from multiple databases. Most records
are easy to skip because they contain the database in the relfilenode or
are just not interesting for logical replication. The only exception are
compact commits.
So we have some alternatives:
1) don't do anything, in that case empty transactions will get replayed since the changes
themselves will get skipped.
2) Don't use compact commits if wal_level=logical
3) unify compact and non-compact commits, trying to get the normal one
smaller.

For 3) I am thinking of using 'xinfo' to store whether we have the other
information or not. E.g. if there are subxacts in a compact commit we
signal that by the flag 'XACT_COMMIT_CONTAINS_SUBXACTS' and store the
number of subxacts after the xlog record. Similarly with relations,
invalidation messages and the database id. That should leave compact
commits without any subxacts at the former size, and those with at the
former size + 4. Normal commits would get smaller in many cases since we
don't store the empty fields.

I personally think 3) is the best solution, any other opinions?

Greetings,

Andres Freund

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nicholas White 2013-09-30 15:22:42 Re: Re: Request for Patch Feedback: Lag & Lead Window Functions Can Ignore Nulls
Previous Message Heikki Linnakangas 2013-09-30 13:56:16 Re: Re: Request for Patch Feedback: Lag & Lead Window Functions Can Ignore Nulls