On Feb 2, 2010, at 2:48 PM, Randall Leeds wrote:

> On Tue, Feb 2, 2010 at 11:39, Chris Anderson <jch...@apache.org> wrote:
>> On Tue, Feb 2, 2010 at 11:25 AM, Randall Leeds <randall.le...@gmail.com> 
>> wrote:
>>> I'm not entirely happy with this patch and I'd like some help figuring
>>> out what to do about it.
>>> 
>>> I foresee problems when database files are copied or backed up on
>>> disk. It's possible to end up with two couchdb instances hosting
>>> databases with the same uuid. The problem is that the uuid is no
>>> longer meaningful, as it doesn't do what it was intended to (uniquely
>>> identify the database).
>>> 
>>> Can anyone see a way around this?
>>> 
>> 
>> I think we don't mind this. As I mentioned above, when we see that 2
>> db files have the same uuid we can do a fast-forward replication by
>> starting from the lower of the 2 dbs sequence #s for replication.
>> (maybe... Adam, does this sound sane?)
> 
> If changes had been made to both dbs separately then the lower
> sequence # might be beyond the sequence number at which the histories
> diverged and the changes to the "younger" db would be lost.

Yes, that's the problem we'll need to solve if we're going to use UUIDs to 
fast-forward replication.  Off the top of my head, one way to do that would be 
store a DB revid calculated in the same way as the document revids (and seed it 
with the UUID at the beginning).  Then if you find an update_seq where the 
revision IDs match, you can start the replication from that point.

There may be cheaper ways, though.

Adam

Reply via email to