Re: HOOKS for Synchronous Replication?
Jonah H. Harris <jonah.harris@gmail.com>
From: "Jonah H. Harris" <jonah.harris@gmail.com>
To: Jan Wieck <JanWieck@yahoo.com>
Cc: "Jim C. Nasby" <jim@nasby.net>, Darcy Buskermolen <darcy@wavefire.com>, pgsql-hackers@postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>, Christopher Kings-Lynne <chriskl@familyhealth.com.au>
Date: 2005-12-08T20:19:57Z
Lists: pgsql-hackers
True, I think we need hooks for both methods. On 12/8/05, Jan Wieck <JanWieck@yahoo.com> wrote: > > 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@familyhealth.com.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@Yahoo.com # > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend >