Skip site navigation (1) Skip section navigation (2)

Re: Keeping separate WAL segments for each database

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Devrim GÜNDÜZ <devrim(at)gunduz(dot)org>, PostgreSQL Hackers ML <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Keeping separate WAL segments for each database
Date: 2010-06-30 23:05:03
Message-ID: 19417.1277939103@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> I think one per database and one extra one for the shared catalogs
> would be enough.  Most transactions would either touch either just the
> database, or just the shared catalogs, so you'd write the commit
> record in whichever stream was appropriate.  If you had a transaction
> that touched both, you'd write the commit record in both places, and
> include in each stream a reference to the other stream.  On replay,
> when you reach a commit record that references the another stream, you
> pause until the reference stream also reaches the matching commit
> record.  If you reach the end of that WAL stream without finding the
> commit record, then, in archive recovery, you just keep waiting for
> more of the stream to arrive; and, in crash recovery, you write a
> matching commit record at the end of WAL.

Surely you'd have to roll back, not commit, in that situation.  You have
no excuse for assuming that you've replayed all effects of the
transaction.

			regards, tom lane

In response to

Responses

pgsql-hackers by date

Next:From: Robert HaasDate: 2010-06-30 23:17:35
Subject: Re: Keeping separate WAL segments for each database
Previous:From: Robert HaasDate: 2010-06-30 23:03:36
Subject: Re: Check constraints on non-immutable keys

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group