Re: HOOKS for Synchronous Replication?

From: Jan Wieck <JanWieck(at)Yahoo(dot)com>
To: "Jim C(dot) Nasby" <jim(at)nasby(dot)net>
Cc: Darcy Buskermolen <darcy(at)wavefire(dot)com>, pgsql-hackers(at)postgresql(dot)org, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>
Subject: Re: HOOKS for Synchronous Replication?
Date: 2005-12-08 19:35:27
Message-ID: 43988AFF.5010804@Yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 12/8/2005 2:05 PM, Jim C. Nasby wrote:

> On Thu, Dec 08, 2005 at 08:33:59AM -0800, Darcy Buskermolen wrote:
>> On Wednesday 07 December 2005 20:24, Tom Lane wrote:
>> > Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au> writes:
>> > > Anyone remember this patch?
>> > > http://gorda.di.uminho.pt/community/pgsqlhooks/
>> > > The discussion seems to be pretty minimal:
>> > > http://archives.postgresql.org/pgsql-hackers/2005-06/msg00859.php
>> > > Does anyone see a need to investigate it further?
>> >
>> > I had hoped to see some comments from the Slony people about it.
>> > I'd feel better about the validity of a set of hooks if more than
>> > one project agreed that it was useful/appropriate ...
>>
>> I missed seeing it all together the first time through, I'll see what I can do
>> about taking a indepth look at it over the next few days and provide some
>> feedback.
>
> While this code might be useful, whouldn't it be much more valuable to
> provide hooks into xlog so that we could do non-trigger-based
> replication? (As well as non-trigger-based materialized views...)

I don't see why these would be mutually exclusive. A generic API needs
to have them all.

Without having looked at the patch yet, what I expect from an API is
that the backend will (after initialization and becoming a member of a
database) check if this database is replicated. If so load the specific
shared object that implement the backend part of the replication system
and then call an init() function in that. This init() function then will
add callbacks to all the hooks where this particular replication system
wants to be called. So one replication system might want to be called on
commit, just before writing the WAL record, some other system doesn't
care about that, but wants to see the WAL record after it was written.

Jan

--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-12-08 19:53:24 Re: Reducing relation locking overhead
Previous Message Dann Corbit 2005-12-08 19:33:49 Re: HOOKS for Synchronous Replication?