On Sun, Nov 26, 2006 at 04:09:20PM -0500, Jonah H. Harris wrote:
>
> Umm, as this is the second incorrect statement you've made about
> PGCluster, perhaps you really should spend some time reading the docs
> before posting. Just for the record, PGCluster does support proper
> replication of now().
It's sort of irrelevant whether there are tricks to solve things like
now(), because the central problem is that of shipping statements
around.
The problem with statement-based replication is that it can't provide
generic support for replication of those statements that are
sensitive to state. For example, a stored procedure that contains a
call to CURRENT_TIMESTAMP will not be replicated perfectly.
(PGCluster, in a test that I ran some time ago, replicated the call
to the stored procedure. That means that the value of
CURRENT_TIMESTAMP could differ on different members of the group.)
Unless you put a complete interpreter and planner in between the
clients and the replicas, this is a simple, in-principle limitation
of statement based replication. If you _do_ put a complete
interpreter in the way, then you have created a single point of
failure. This is why synchronous replication is hard. (The other
trick, of course, is network-based IPC, which is what PGCluster-II is
aiming at. I'm eagerly awaiting results!)
None of this is to say that PGCluster isn't useful for some purposes.
But I don't see any value in pretending that PGCluster can ever
represent a completely generic multimaster system, when it has such
an important limitation. It is certainly the best available
multimaster system at the moment, and I can think of applications
where it would probably be a very good choice for use.
A
--
Andrew Sullivan | ajs@crankycanuck.ca
"The year's penultimate month" is not in truth a good way of saying
November.
--H.W. Fowler