From:
Hannu Krosing <hannu(at)krosing(dot)net>
To:
Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
Cc:
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, David Fetter <david(at)fetter(dot)org>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,"pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: Core team statement on replication in PostgreSQL
Date:
2008-06-01 21:14:39
Message-ID:
1212354879.18365.30.camel@huvostro (view raw or flat )
Thread:
2008-05-29 14:12:55 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 14:54:03 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-29 15:58:19 from Rick Vernam <rickv(at)hobi(dot)com>
2008-05-29 18:49:14 from Teodor Sigaev <teodor(at)sigaev(dot)ru>
2008-05-29 19:22:09 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-29 15:21:05 from David Fetter <david(at)fetter(dot)org>
2008-05-29 15:40:57 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-29 15:49:54 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 15:58:31 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-05-29 16:12:02 from David Fetter <david(at)fetter(dot)org>
2008-05-29 16:13:20 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-05-29 21:42:16 from Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
2008-05-29 21:52:37 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 21:54:36 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-29 22:39:53 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-05-29 22:47:05 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-29 23:02:56 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 23:12:22 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-30 00:14:30 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-30 00:57:21 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2008-05-30 01:25:49 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-30 00:25:10 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-30 00:31:31 from Greg Smith <gsmith(at)gregsmith(dot)com>
2008-05-30 01:26:36 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-30 02:59:21 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-30 19:16:57 from Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
2008-05-30 03:02:56 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-05-30 14:19:00 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-05-30 20:22:41 from Greg Smith <gsmith(at)gregsmith(dot)com>
2008-05-30 21:18:51 from "Gurjeet Singh" <singh(dot)gurjeet(at)gmail(dot)com>
2008-05-30 22:11:20 from Greg Smith <gsmith(at)gregsmith(dot)com>
2008-05-31 03:39:14 from "Gurjeet Singh" <singh(dot)gurjeet(at)gmail(dot)com>
2008-05-31 00:00:17 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-30 22:42:20 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-06-10 01:46:06 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-06-10 01:49:52 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2008-06-10 01:55:31 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-10 02:48:33 from Greg Smith <gsmith(at)gregsmith(dot)com>
2008-06-10 03:16:11 from "Koichi Suzuki" <koichi(dot)szk(at)gmail(dot)com>
2008-06-10 09:43:51 from Gregory Stark <stark(at)enterprisedb(dot)com>
2008-06-10 10:03:08 from "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
2008-06-16 16:56:51 from "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
2008-07-10 00:55:25 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-07-10 11:56:31 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-07-10 14:44:20 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-07-11 21:03:14 from chris <cbbrowne(at)ca(dot)afilias(dot)info>
2008-07-15 15:03:55 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-07-15 22:18:46 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2008-07-15 22:24:17 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-07-15 22:32:08 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2008-07-15 22:56:31 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-05-30 21:05:57 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-05-30 22:47:19 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-05-31 06:18:08 from "Mike Rylander" <mrylander(at)gmail(dot)com>
2008-05-31 14:21:41 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-31 15:14:48 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-30 22:51:57 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-31 00:56:19 from Tatsuo Ishii <ishii(at)postgresql(dot)org>
2008-05-31 01:32:26 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-06-02 15:52:05 from Chris Browne <cbbrowne(at)acm(dot)org>
2008-06-02 20:40:47 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-06-03 07:19:59 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-05-30 05:10:20 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-30 07:01:46 from "Gurjeet Singh" <singh(dot)gurjeet(at)gmail(dot)com>
2008-05-30 13:31:06 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-30 15:59:23 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-30 14:43:00 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-05-30 14:46:19 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-30 15:30:14 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-05-30 15:58:03 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-06-10 01:25:17 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-06-10 01:50:58 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-10 16:01:05 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-06-11 01:11:07 from ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
2008-05-30 08:56:45 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-05-30 19:16:29 from Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
2008-06-01 20:42:11 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-06-04 04:08:46 from "Stephen Denne" <Stephen(dot)Denne(at)datamail(dot)co(dot)nz>
2008-06-04 08:13:52 from "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
2008-06-04 10:51:26 from Teodor Sigaev <teodor(at)sigaev(dot)ru>
2008-06-04 11:19:42 from "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
2008-06-04 10:58:53 from Csaba Nagy <nagy(at)ecircle-ag(dot)com>
2008-06-04 11:17:55 from "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>
2008-06-04 17:18:17 from Jeff Davis <pgsql(at)j-davis(dot)com>
2008-06-04 18:23:38 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-04 18:26:02 from Jeff Davis <pgsql(at)j-davis(dot)com>
2008-06-05 11:08:14 from Gregory Stark <stark(at)enterprisedb(dot)com>
2008-06-04 14:40:58 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-04 15:27:04 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-06-04 15:37:25 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-04 16:16:40 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-06-05 00:10:26 from "Koichi Suzuki" <koichi(dot)szk(at)gmail(dot)com>
2008-06-05 00:30:34 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-05 04:21:25 from "Koichi Suzuki" <koichi(dot)szk(at)gmail(dot)com>
2008-05-30 19:16:34 from Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
2008-05-30 02:38:28 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 22:12:31 from Dimitri Fontaine <dim(at)hi-media(dot)com>
2008-05-29 22:29:01 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-30 08:29:30 from Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
2008-05-30 09:02:03 from Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
2008-05-30 14:26:53 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-05-29 16:22:26 from Steve Atkins <steve(at)blighty(dot)com>
2008-05-30 14:42:10 from Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
2008-05-29 19:54:03 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 20:39:29 from David Fetter <david(at)fetter(dot)org>
2008-05-29 20:44:19 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 20:50:51 from David Fetter <david(at)fetter(dot)org>
2008-05-29 20:54:04 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-05-29 20:58:34 from David Fetter <david(at)fetter(dot)org>
2008-05-30 13:29:03 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 21:00:29 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 20:55:42 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 21:02:08 from David Fetter <david(at)fetter(dot)org>
2008-05-29 21:09:28 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 21:29:01 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 16:18:44 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 16:20:55 from Bruce Momjian <bruce(at)momjian(dot)us>
2008-05-29 17:41:32 from Jeff Davis <pgsql(at)j-davis(dot)com>
2008-05-29 19:56:12 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 16:10:05 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2008-05-29 15:46:22 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-29 15:48:25 from "Douglas McNaught" <doug(at)mcnaught(dot)org>
2008-05-29 16:00:55 from "Dave Page" <dpage(at)pgadmin(dot)org>
2008-05-29 16:16:15 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2008-05-29 16:27:38 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-29 16:35:41 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2008-06-01 20:16:51 from James Mansion <james(at)mansionfamily(dot)plus(dot)com>
2008-05-29 16:19:48 from Andrew Dunstan <andrew(at)dunslane(dot)net>
2008-05-29 16:40:14 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 19:03:40 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-29 19:59:55 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 20:22:13 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-05-29 15:53:03 from David Fetter <david(at)fetter(dot)org>
2008-05-29 17:37:14 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 19:05:18 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-05-29 19:16:57 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-06-01 15:58:59 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-06-01 17:19:10 from "Merlin Moncure" <mmoncure(at)gmail(dot)com>
2008-06-01 17:43:22 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-06-04 03:20:11 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-06-04 07:24:20 from Markus Schiltknecht <markus(at)bluegap(dot)ch>
2008-06-04 14:36:23 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 19:30:07 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 20:09:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2008-05-29 22:06:39 from Chris Browne <cbbrowne(at)acm(dot)org>
2008-05-30 18:12:51 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-05-30 19:57:28 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-05-29 20:35:41 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-06-01 21:14:39 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-06-02 06:37:30 from Robert Hodges <robert(dot)hodges(at)continuent(dot)com>
2008-05-29 19:33:41 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-06-01 20:42:29 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-05-29 16:10:26 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 16:29:58 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2008-05-29 18:05:12 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-05-29 20:08:11 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 16:20:37 from "Marko Kreen" <markokr(at)gmail(dot)com>
2008-05-29 18:20:04 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 20:10:13 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 16:11:21 from Brian Hurt <bhurt(at)janestcapital(dot)com>
2008-05-29 18:13:26 from Andrew Sullivan <ajs(at)commandprompt(dot)com>
2008-05-29 18:28:08 from David Fetter <david(at)fetter(dot)org>
2008-05-29 19:21:24 from Brian Hurt <bhurt(at)janestcapital(dot)com>
2008-05-29 17:11:08 from Shane Ambler <pgsql(at)Sheeky(dot)Biz>
2008-05-29 17:39:48 from Greg Smith <gsmith(at)gregsmith(dot)com>
2008-06-01 19:57:00 from James Mansion <james(at)mansionfamily(dot)plus(dot)com>
2008-05-29 16:01:44 from Mathias Brossard <mathias(dot)brossard(at)opentrust(dot)com>
2008-05-29 20:12:54 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-29 21:37:44 from Mathias Brossard <mathias(dot)brossard(at)opentrust(dot)com>
2008-06-02 17:37:59 from Hannu Krosing <hannu(at)krosing(dot)net>
2008-05-29 20:14:14 from Peter Eisentraut <peter_e(at)gmx(dot)net>
2008-05-30 08:29:17 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2008-05-30 10:21:53 from Dirk Riehle <dirk(at)riehle(dot)org>
2008-05-31 18:48:26 from Josh Berkus <josh(at)agliodbs(dot)com>
2008-06-01 03:22:23 from Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
2008-06-01 13:31:44 from Dirk Riehle <dirk(at)riehle(dot)org>
2008-06-01 05:23:21 from Shane Ambler <pgsql(at)Sheeky(dot)Biz>
2008-06-01 14:56:10 from "Jonah H(dot) Harris" <jonah(dot)harris(at)gmail(dot)com>
2008-05-30 20:21:28 from "Gurjeet Singh" <singh(dot)gurjeet(at)gmail(dot)com>
2008-06-01 18:31:13 from "Dawid Kuroczko" <qnex42(at)gmail(dot)com>
Lists:
pgsql-advocacy pgsql-hackers
On Thu, 2008-05-29 at 12:05 -0700, Robert Hodges wrote:
> Hi everyone,
>
> First of all, I’m absolutely delighted that the PG community is
> thinking seriously about replication.
>
> Second, having a solid, easy-to-use database availability solution
> that works more or less out of the box would be an enormous benefit to
> customers. Availability is the single biggest problem for customers
> in my experience and as other people have commented the alternatives
> are not nice. It’s an excellent idea to build off an existing feature
> —PITR is already pretty useful and the proposed features are solid
> next steps. The fact that it does not solve all problems is not a
> drawback but means it’s likely to get done in a reasonable timeframe.
>
> Third, you can’t stop with just this feature. (This is the BUT part
> of the post.) The use cases not covered by this feature area actually
> pretty large. Here are a few that concern me:
>
> 1.) Partial replication.
> 2.) WAN replication.
1.) & 2.) are better done asunc, the domain of Slony-I/Londiste
> 3.) Bi-directional replication. (Yes, this is evil but there are
> problems where it is indispensable.)
Sure, it is also a lot harder and always has several dimensions
(performanse/availability7locking) which play against each other
> 4.) Upgrade support. Aside from database upgrade (how would this ever
> really work between versions?), it would not support zero-downtime app
> upgrades, which depend on bi-directional replication tricks.
Or you could use zero-downtime app upgrades, which don't depend on
this :P
> 5.) Heterogeneous replication.
> 6.) Finally, performance scaling using scale-out over large numbers of
> replicas. I think it’s possible to get tunnel vision on this—it’s not
> a big requirement in the PG community because people don’t use PG in
> the first place when they want to do this. They use MySQL, which has
> very good replication for performance scaling, though it’s rather weak
> for availability.
Again, doing scale-out over large number of replicas should either be
async or for sync use some broadcast channel to all slaves (and still be
a performance problem on master, as it has to wait for slowest slave).
> As a consequence, I don’t see how you can get around doing some sort
> of row-based replication like all the other databases.
Is'nt WAL-base replication "some sort of row-based replication" ?
> Now that people are starting to get religion on this issue I would
> strongly advocate a parallel effort to put in a change-set extraction
> API that would allow construction of comprehensive master/slave
> replication.
Triggers. see pgQ's logtrigga()/logutrigga(). See slides for Marko
Kreen's presentation at pgCon08.
> (Another approach would be to make it possible for third party apps
> to read the logs and regenerate SQL.)
which logs ? WAL or SQL command logs ?
> There are existing models for how to do change set extraction; we have
> done it several times at my company already. There are also research
> projects like GORDA that have looked fairly comprehensively at this
> problem.
pgQ with its triggers does a pretty good job of change-set extraction.
------------------
Hannu
In response to
Responses
pgsql-hackers by date
Next :From: David FetterDate: 2008-06-01 23:33:55
Subject : == PostgreSQL Weekly News - June 01 2008 ==
Previous :From : Greg Sabino MullaneDate : 2008-06-01 21:13:05
Subject : Re: Overhauling GUCS
pgsql-advocacy by date
Next :From: Selena DeckelmannDate: 2008-06-02 02:37:57
Subject : Call for proposals for PDXPUG PgDay - due by June 20, 2008
Previous :From : Hannu KrosingDate : 2008-06-01 20:42:29
Subject : Re: Core team statement on replication in PostgreSQL