Cmpact commits and changeset extraction - Mailing list pgsql-hackers

From Andres Freund
Subject Cmpact commits and changeset extraction
Date
Msg-id 20130930145028.GA30125@awork2.anarazel.de
Whole thread Raw
Responses Re: Cmpact commits and changeset extraction
List 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



pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Re: Request for Patch Feedback: Lag & Lead Window Functions Can Ignore Nulls
Next
From: Nicholas White
Date:
Subject: Re: Re: Request for Patch Feedback: Lag & Lead Window Functions Can Ignore Nulls