pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Markus Schiltknecht <markus@bluegap.ch>
To: Bruce Momjian <bruce@momjian.us>
Cc: PostgreSQL-documentation <pgsql-docs@postgresql.org>
Subject: Re: High Availability, Load Balancing, and Replication Feature Matrix
Date: Mon, 19 Nov 2007 20:51:27 +0100
Message-ID: <4741E93F.7090909@bluegap.ch> (raw)
In-Reply-To: <200711191731.lAJHVnu16391@momjian.us>
References: <200711191731.lAJHVnu16391@momjian.us>

Hello Bruce,

Bruce Momjian wrote:
>> Depending on the RAIDb level you are using, Sequoia can be considered 
>> multi-master (RAIDb-1) or single-master (RAIDb-0). Also note that 
>> sequoia can run multiple controllers, thus it does not rely on one 
>> central server.
> 
> But in those cases isn't the multi-master just at the storage level?  I
> don't consider that multi-"master".

Eh.. I think you misunderstood. The Sequoia people use RAIDb to mean 
Redundant Array of Inexpensive _Databases_. A possible setup might look 
like:

       controller  <-->   controller  <-->  controller
        /   |  \   (GCS)   /  |   \   (GCS)   /  |   \
       /    |   \         /   |    \         /   |    \
      DB    DB   DB      DB   DB    DB      DB   DB    DB
      |      |     .     .   .     .        .    .     .
     local  local
     disk   disk

(controllers may as well run on the same physical node as the DB itself)

Given we are talking about replication (mirroring), every database in 
the scenario above hosts a replica of the data and has to apply all 
(writing) transactions. That's pretty much what I'd call a master. The 
complete system can be considered a (statement based) multi-master 
replication solution. No shared storage or clustering file system is 
involved.

With RAIDb-0, where they distribute tables across different databases, 
we'd have a single-master solution. (Or rather data partitioning, since 
  there's no replica).

Then again, with RAIDb-2, which is what they call the mix of the two, 
i.e. combining mirroring and partitioning, we are back at a multi-master 
configuration, where only parts of all nodes are masters.

See also [1] for better diagrams and explanations of their RAIDb concept.

As a side note: I personally don't like the name RAIDb and even less the 
numbering. I prefer talking about replication (or mirroring) and 
partitioning, as that's more meaningful than numbers.

> I am afraid we are stuck between clarity and understand-ability here. ;-)

Agreed, but that's where I think the current chapter creates confusion 
by trying to separate into "statement based replication middleware" and 
"synchronous multi-master replication". Such a separation does not 
exist, instead every combination of single vs. multi-master and 
statement based vs tuple based is possible. Examples:

single-master, tuple based: Slony-I, Mammoth Replicator
multi-master, tuple based: Postgres-R, Slony-II, maybe Bucardo (?)
single-master, statement based: maybe pgpool or skytools can do that (?)
multi-master, statement based: Sequoia, PgCluster

But IIRC we already had that discussion a year ago.

Regards

Markus

[1] C-JDBC site with samples
http://c-jdbc.objectweb.org/current/doc/userGuide/html/ar01s10.html



view thread (17+ messages)  latest in thread

Message-ID: <4741E93F.7090909@bluegap.ch>
Permalink:  ../4741E93F.7090909@bluegap.ch/
Also on:    postgresql.org/message-id/4741E93F.7090909@bluegap.ch

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: markus@bluegap.ch, bruce@momjian.us
  Subject: Re: High Availability, Load Balancing, and Replication Feature Matrix
  In-Reply-To: <4741E93F.7090909@bluegap.ch>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox