On 09/02/2009, at 1:07 PM, Damien Katz wrote:

would be a big problem of replicating huge databases. Everything must come over in one transaction.

I doesn't *have* to come in one transaction, but I understand the problem you are talking about - the commit point may delimit the entire database, and always will for the first replication. Particularly an issue for me because I'm approaching 4G of data to replicate.

And the problem then with what I've previously suggested is that you have to decide before hand whether to fail on a given replication or not, and if you don't then you have to maintain a write lock potentially for ever, subject to upstream failure. There seems to be two solutions to this:

1. Allow a replication rollback commit point (e.g. header) to persist so that rollback can occur at any time. This will allow a target to abandon a long, incremental replication after several attempts. A replication stream would not necessarily end with a commit marker.

2. Record commit boundaries, possibly by recording a transaction-seq with each document rev. I'm aware that this *is* about reifying underlying transactions, but at least the reification is implicit.

Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

A priest, a minister and a rabbi walk into a bar. The bartender says "What is this, a joke?"


Reply via email to