From:
Robert Haas <robertmhaas(at)gmail(dot)com>
To:
Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc:
Hannu Krosing <hannu(at)2ndquadrant(dot)com>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, greg(at)2ndquadrant(dot)com, Josh Berkus <josh(at)postgresql(dot)org>, Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>, pgsql-hackers(at)postgresql(dot)org
Subject:
Re: Sync Rep Design
Date:
2011-01-02 04:36:10
Message-ID:
AANLkTi=yYKvRCvfTprbj=jQDVMrDKUMcate=vCaQobSi@mail.gmail.com (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 Sat, Jan 1, 2011 at 6:54 AM, Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
> Yes, working out the math is a good idea. Things are much clearer if we
> do that.
>
> Let's assume we have 98% availability on any single server.
>
> 1. Having one primary and 2 standbys, either of which can acknowledge,
> and we never lock up if both standbys fail, then we will have 99.9992%
> server availability. (So PostgreSQL hits "5 Nines", with data
> guarantees). ("Maximised availability")
I don't agree with this math. If the master and one standby fail
simultaneously, the other standby is useless, because it may or may
not be caught up with the master. You know that the last transaction
acknowledged as committed by the master is on at least one of the two
standbys, but you don't know which one, and so you can't safely
promote the surviving standby.
(If you are working in an environment where promoting the surviving
standby when it's possibly not caught up is OK, then you don't need
sync rep in the first place: you can just run async rep and get much
better performance.)
So the availability is 98% (you are up when the master is up) + 98%^2
* 2% (you are up when both slaves are up and the master is down) =
99.92%. If you had only a single standby, then you could be certain
that any commit acknowledged by the master was on that standby. Thus
your availability would be 98% (up when master is up) + 98% * 2% (you
are up when the master is down and the slave is up) = 99.96%.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
In response to
Responses
pgsql-hackers by date
Next :From: Robert HaasDate: 2011-01-02 04:48:50
Subject : pgsql: Basic foreign table support.
Previous :From : Aidan Van DykDate : 2011-01-02 03:11:10
Subject : Re: Sync Rep Design