Re: Re: xReader, double-effort (was: Temporary tables under hot standby) - Mailing list pgsql-hackers

From Kevin Grittner
Subject Re: Re: xReader, double-effort (was: Temporary tables under hot standby)
Date
Msg-id 4F9AD4EE02000025000474CA@gw.wicourts.gov
Whole thread Raw
In response to Re: Re: xReader, double-effort (was: Temporary tables under hot standby)  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: Re: xReader, double-effort (was: Temporary tables under hot standby)
Re: Re: xReader, double-effort (was: Temporary tables under hot standby)
Re: Re: xReader, double-effort (was: Temporary tables under hot standby)
List pgsql-hackers
Andres Freund <andres@2ndquadrant.com> wrote:
> In the current, prototypal, state there is one component thats
> integrated into the server (because it needs information thats
> only available there).
The xReader design was based on the idea that it would be nice not
to cause load on the master machine, and that by proxying the WAL
stream to the HS, using synchronous replication style to write from
xReader to the HS, you could use the HS for a source for that data
with it being at exactly the right point in time to query it.
I'm not convinced that I would rather see the logic fixed inside the
master as opposed to being deployable on the master's machine, the
slave machine, or even on its own machine in between.
> That component is layered ontop of a totally generic xlog
> reading/parsing library that doesn't care at all where its
> running.
That's cool.
> Its also used in another cluster to read the received (filtered)
> stream.
I don't quite follow what you're saying there.
> I plan to submit the XLogReader (thats what its called atm)
> before everything else, so everybody can take a look as soon as
> possible.
Great!  That will allow more discussion and planning.
> I took a *very* short glance over the current wiki description of
> xReader and from that it seems to me it would benefit from trying
> to make it architecturally more similar to the rest of pg.
We're planning on using existing protocol to talk between pieces. 
Other than breaking it out so that it can run somewhere other than
inside the server, and allowing clients to connect to xReader to
listen to WAL events of interest, are you referring to anything
else?
> I also would suggest reviewing how the current walreceiver/sender,
> and their protocol, work.
Of course!  The first "inch-stone" in the GSoC project plan
basically consists of creating an executable that functions as a
walreceiver and a walsender to just pass things through from the
master to the slave.  We build from there by allowing clients to
connect (again, over existing protocol) and register for events of
interest, and then recognizing different WAL records to generate
events.  The project was just going to create a simple client to
dump the information to disk, but with the time saved by adopting
what you've already done, that might leave more time for generating
a useful client.
Aakash, when you get a chance, could you fill in the "inch-stones"
from the GSoC proposal page onto the Wiki page?  I think the
descriptions of those interim steps would help people understand
your proposal better.  Obviously, some of the particulars of tasks
and the dates may need adjustment based on the new work which is
expected to appear before you start, but what's there now would be a
helpful reference.
-Kevin


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: smart shutdown at end of transaction (was: Default mode for shutdown)
Next
From: Greg Smith
Date:
Subject: Re: xReader, double-effort