Re: Slony v. DBMirror - Mailing list pgsql-general

From Peter Wilson
Subject Re: Slony v. DBMirror
Date
Msg-id d5g6tp$1950$1@news.hub.org
Whole thread Raw
In response to Re: Slony v. DBMirror  (Andrew Sullivan <ajs@crankycanuck.ca>)
Responses Re: Slony v. DBMirror
Re: Slony v. DBMirror
List pgsql-general
Andrew Sullivan wrote:
> On Thu, May 05, 2005 at 03:35:27PM +0100, Peter Wilson wrote:
>
>>Looking at Slony now, can someone tell me what the benefits of Slony are
>>over DBmirror? As far as I can see:
>>+ both are async Master->multiple slaves
>>+ both (I think) can do cascaded replication
>
>
> This isn't really true of dbmirror.  You can do it, but if you lose
> the intermediate system, you also lose the cascaded ones (the
> downstream one doesn't know about the state of the top-level origin).
> Slony is designed to cover that case (it was one of several criteria
> we had to satisfy).

That's true. The alternative is to simply replicate from master to both
slaves, but this places an additional load on the master.
>
>
>>+ neither replicate schema changes
>
>
> This is sort of false, too.  Slony has a facility for injecting the
> schema changes at just the right spot in the replication sets, so
> that you really can push your schema changes through Slony.  (This
> isn't to say you should regularly do this -- it's designed for
> production systems, where schema changes should be relatively rare.)
>
I got the lack of schema changes from the Slony documentation. I guess
there must be some manual intervention though to say 'make these schema
chagnes now'?

>
>>+ nether do automatic switch-over
>
>
> Any async replication system which routinely does automatic _fail_
> over is, in my opinion, a product not suited for production.  This is
> a decision that generally needs to be made at Layer 9 or so -- when
> you kill a data source, you are potentially walking away from data.

That wasn't meant to be a critisism of either :-)

> (Naturally, some special cases will call for such fail over anyway.
> It's possible to set up Slony for this, of course, just dangerous.
> You'd need some external scripts, but they're not impossible to
> build.  There's been a recent discussion of this topic on the slony
> lists.)  Slony _does_ have pretty good facilities for controlled
> switch over (as well as a good mechanism for fail over, where you
> abandon the old origin).  With the right arrangements with pgpool,
> you ought to be able to do a controlled switch over of a data origin
> without a client outage.  This is part of the system by design.  That
> design turns out to be harder than you'd think.
>
> Slony also replicates sequences, has extensive guards against data
> loss, and can deal with triggers that need to be working or not
> depending on the current use of a table in a set.  The data loss
> problem due to unreliable nodes is quite a bit nastier than it might
> seem.  The problem isn't just to replicate.  The problem is to
> replicate in a provably reliable way.

FYI DBmirror with Postgres version 8 also replicates sequences.

>
>
>>All slony seems to offer is a different configuration system and the
>>ability to automatically propogate configuration changes. It seems this
>>could be added to DBmirror pretty easily so why a whole new project?
>
>
> We looked at the options when we launched the project, believe me. At
> the time, we were using erserver, the development of which we'd also
> subsidized (starting in 2001).  We learned a lot from the troubles we
> had with that system (some of which were addressed in what is the
> current commercial erserver code), and the result was that we
> concluded we could not "backport" several of the features we wanted
> into either erserver or dbmirror (aside from the
> frustrating-but-mostly-works original Java engine in the
> first-released community erserver, there isn't much to distinguish
> dbmirror and the community erserver).  If you want to see the results
> of our investigation, and (by inference) the criteria we used to
> decide what would satisfy our requirements, you can see Jan's concept
> paper; it's at
> <http://developer.postgresql.org/~wieck/slony1/Slony-I-concept.pdf>.
>
> A
>

Fair enough - thanks Andrew. When I get some less busy time I'll have
another got with Slony - you've made a good case for it, even though I
probably don't need it for my applications right now (not running a
domanin name registry!). It would probably ease my admin overhead when
things do go wrong though which is good.

thanks
Pete

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Duplicate key error when updating unique columns
Next
From: Chris Browne
Date:
Subject: Re: Slony v. DBMirror