From:
Josh Berkus <josh(at)postgresql(dot)org>
To:
Robert Haas <robertmhaas(at)gmail(dot)com>
Cc:
Simon Riggs <simon(at)2ndquadrant(dot)com>,
Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>,
greg(at)2ndquadrant(dot)com, Hannu Krosing <hannu(at)2ndquadrant(dot)com>,
Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>,
pgsql-hackers(at)postgresql(dot)org
Subject:
Re: Sync Rep Design
Date:
2011-01-01 00:20:54
Message-ID:
4D1E7366.1020607@postgresql.org (view raw or flat )
Thread:
2010-12-30 17:26:12 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 17:42:22 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-30 19:04:13 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:07:16 from Robert Treat <rob(at)xzilla(dot)net>
2010-12-30 20:24:09 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-12-31 03:26:51 from Joshua Tolley <eggyknap(at)gmail(dot)com>
2010-12-31 11:51:55 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:36:30 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:51:19 from Robert Treat <rob(at)xzilla(dot)net>
2010-12-30 21:01:18 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 21:08:50 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-30 21:27:11 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 08:15:41 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-30 20:39:05 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:55:28 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:11:40 from Marti Raudsepp <marti(at)juffo(dot)org>
2010-12-30 21:10:00 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 20:42:23 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-30 21:23:55 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 08:27:29 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-31 10:26:11 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 12:33:19 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2010-12-31 16:56:38 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 13:13:07 from Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
2011-01-01 14:03:35 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 14:15:45 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-01-01 15:12:19 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 16:55:57 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 17:13:24 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 17:29:20 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 17:49:44 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 19:03:30 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 16:35:59 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 20:27:10 from Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
2010-12-30 21:47:42 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-12-31 01:15:10 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 01:57:34 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 05:02:13 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-12-31 07:50:43 from Hannu Krosing <hannu(at)2ndquadrant(dot)com>
2011-01-02 20:13:46 from MARK CALLAGHAN <mdcallag(at)gmail(dot)com>
2011-01-02 20:53:23 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-03 11:10:40 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-30 21:27:03 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-12-31 00:47:37 from Jim Nasby <jim(at)nasby(dot)net>
2010-12-31 01:38:32 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 01:07:53 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 07:50:07 from Hannu Krosing <hannu(at)2ndquadrant(dot)com>
2010-12-31 10:06:12 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-12-31 10:39:32 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-31 10:42:15 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 11:48:57 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2010-12-31 12:40:15 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-12-31 12:57:30 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-12-31 13:39:19 from Robert Haas <robertmhaas(at)gmail(dot)com>
2010-12-31 13:48:41 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2010-12-31 14:13:50 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-01-01 00:20:54 from Josh Berkus <josh(at)postgresql(dot)org>
2010-12-31 12:40:58 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2010-12-31 19:15:59 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 13:59:06 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 16:28:42 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-01 16:37:12 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-01 17:03:48 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 19:29:45 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2011-01-01 17:30:29 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-01 22:40:21 from Josh Berkus <josh(at)postgresql(dot)org>
2011-01-01 23:08:42 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 03:11:10 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2011-01-02 10:39:45 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 08:35:07 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2011-01-02 09:20:39 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-02 09:20:40 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 10:39:51 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 12:47:17 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-02 16:44:01 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2011-01-02 17:53:51 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-02 20:58:35 from Magnus Hagander <magnus(at)hagander(dot)net>
2011-01-02 21:24:27 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-04 18:40:25 from Josh Berkus <josh(at)postgresql(dot)org>
2011-01-04 22:00:53 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-04 22:18:13 from Josh Berkus <josh(at)postgresql(dot)org>
2011-01-04 22:24:43 from Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
2011-01-04 23:20:21 from Josh Berkus <josh(at)agliodbs(dot)com>
2010-12-31 21:18:15 from Hannu Krosing <hannu(at)2ndquadrant(dot)com>
2011-01-01 11:54:35 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 04:36:10 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-01-02 10:59:32 from Hannu Krosing <hannu(at)2ndquadrant(dot)com>
2011-01-02 13:41:13 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-02 16:54:29 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2011-01-02 21:19:46 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-04 18:28:30 from Josh Berkus <josh(at)agliodbs(dot)com>
2011-01-04 18:51:45 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2011-01-04 19:04:21 from "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
2011-01-04 19:50:17 from Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
2011-01-04 19:54:04 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-01-05 01:59:57 from Greg Smith <greg(at)2ndquadrant(dot)com>
2011-01-04 19:04:37 from Robert Haas <robertmhaas(at)gmail(dot)com>
2011-01-03 01:30:12 from Hannu Krosing <hannu(at)2ndquadrant(dot)com>
2011-01-01 19:41:55 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2011-01-01 22:41:10 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
Lists:
pgsql-hackers
On 12/31/10 4:40 AM, Robert Haas wrote:
> Someone may have proposed this before, but one way of getting standby
> naming "for free" would be to make the standby names the same as the
> roles used to log in, rather than adding a separate parameter. We
> could just recommend to people that they use a separate, descriptive
> role name for each standby. Then the synchronous_standbys parameter -
> when added - would mean "a standby from one of these roles".
I like this idea; it has an elegant simplicity about it and right now I
can't think of any real faults. It would have the added benefit that
each standby "group" would show up by the group name in ps and on
pg_stat_activity.
However, I agree strongly with Simon that we really want the simplest
possible synch rep implementation for 9.1, given that we're currently 15
days away from the *last* commitfest. Nobody, at this point, has really
even test any of the sync rep patches for reliability or performance.
Here's how I could see us developing:
Simplest (9.1):
-- synch/async capability set on the standby in recovery.conf
-- synch/async transaction status (async, recv, fsync, apply) declared
as a userset by the executing session (from Simon's patch)
-- only one ack for sync, regardless of the number of standbys
This would allow users to have a single sync standby plus a pool of
async standbys, which is what I think 90% of users who care about sync
standby want.
More Complex (9.2):
-- all of the above, *plus* the ability to have standbys with ROLEs and
require acks from one server in each ROLE.
"Web-Scale" (9.3):
-- all of the above, plus "group commit", the ability to specific a
number of servers in each ROLE who must ack.
... but the most important thing is to make the feature for 9.1 simple,
simple, simple. We know we won't get it right on the first try.
--Josh Berkus
In response to
pgsql-hackers by date
Next :From: Jim NasbyDate: 2011-01-01 03:24:26
Subject : Re: estimating # of distinct values
Previous :From : Peter EisentrautDate : 2011-01-01 00:00:03
Subject : Re: pl/python refactoring