Re: [PATCH 13/16] Introduction of pair of logical walreceiver/sender
Kevin Grittner <kevin.grittner@wicourts.gov>
From: "Kevin Grittner" <Kevin.Grittner@wicourts.gov>
To: "Andres Freund" <andres@2ndquadrant.com>, "Heikki Linnakangas" <heikki.linnakangas@enterprisedb.com>
Cc: <pgsql-hackers@postgresql.org>
Date: 2012-06-29T15:28:16Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Don't waste the last segment of each 4GB logical log file.
- dfda6ebaec67 9.3.0 cited
-
Stamp HEAD as 9.3devel.
- bed88fceac04 9.3.0 cited
-
Wake WALSender to reduce data loss at failover for async commit.
- 2c8a4e9be273 9.2.0 cited
-
Make the visibility map crash-safe.
- 503c7305a1e3 9.2.0 cited
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote: > On 13.06.2012 14:28, Andres Freund wrote: >> A logical WALReceiver is started directly by Postmaster when we >> enter PM_RUN state and the new parameter multimaster_conninfo is >> set. For now only one of those is started, but the code doesn't >> rely on that. In future multiple ones should be allowed. > In general, I feel that the receiver-side could live outside core. > The sender-side needs to be at least somewhat integrated into the > walsender stuff, and there are changes to the WAL records etc. > that are hard to do outside, but AFAICS the stuff to receive > changes is pretty high-level stuff. It would be nice if there was at least a thin layer of the sender portion which could by used by a stand-alone program. I can think of lots of useful reasons to "T" the WAL stream -- passing through the stream with little or no modification to at least one side. As just one example, I would like a program to write traditional WAL files to match what an archive on the sending side would look like while passing the stream through to an asynchronous hot standby. > As long as the protocol between the logical replication client > and server is well-defined, it should be possible to write all > kinds of clients. You could replay the changes to a MySQL database > instead of PostgreSQL, for example, or send them to a message > queue, or just log them to a log file for auditing purposes. None > of that needs to be in implemented inside a PostgreSQL server. +1 -Kevin