[Bucardo-general] Bucardo vs. rubyrep

Udo Rader listudo at bestsolution.at
Wed Sep 8 10:58:05 UTC 2010


Hi,

don't be afraid: I am not going to ask you the evil question which one
is better ;-)

Instead I have a couple of specific questions:

Our situation is this: we have been replicating two postgres 8.4
instances for the past 2 months using rubyrep. The reasons to go with
rubyrep was that it claims to be "battle tested", installation and
configuration were indeed extremely simple and the level of
documentation seemed to be well enough.

Now, after being productive for two months, we have found numerous
issues with rubyreb (which I am not going to whine about on *this*
mailing list :-) and those issues seem to be quite important to us, so
we are considering a change towards bucardo.

But beforehand, I have a couple of questions :-)

#1 "huge updates"
------
How does bucardo deal with "simple" update statements, that change a
huge number of records.

Say I have a table "foobar" with >500K rows. What if I do this:

UPDATE foobar SET last_verification=NOW() WHERE 1=1

Will bucardo generate >500K entries in the "things2replicate"  table or
will it handle it "more intelligently"?

UPDATEs like these have caused most of our headache, because first they
completely stalled the replication process and then finally killed it
(because the amount of memory required to deal with such a huge number
of pending changes just does not seem to exist).

#2 "senseless updates"
------
Occasionally, some applications will "update" a record even though the
data has not changed.

IIRC, beginning with 8.2, postgres trigger can determine if the "new"
row differs from the "old" row using a construct like this:

IF NEW IS DISTINCT FROM OLD THEN ...

Does bucardo utilize this functionality (thus reducing the amount of
replicated data)?

#3 connectivity problems over WAN
------
Every now an then we see rubyrep die because of connectivity problems.
How "stable" is bucardo when it comes to network problems between two
WAN connected servers?

Will it automagically resume the replication if the nodes have been
disconnected for say one hour or so?

#4 memory consumption
------
Is there a way to roughly calculate the memory requirements for bucardo,
especially for a situation where the nodes have been disconnected for
some time and need to resynchronize?

#5 commercial support
------
Well, the level of support for rubyrep is just ... "limited". So just in
case we need specific support, is there any kind of commercial support
for bucardo?

Thanks in advance!

-- 
Udo Rader, CTO
http://www.bestsolution.at
http://riaschissl.blogspot.com


More information about the Bucardo-general mailing list