Funding Cyrus High Availability

David Carter dpc22 at
Sun Sep 19 06:37:58 EDT 2004

On Sun, 19 Sep 2004, David Lang wrote:

> 5. Active/Active
> designate one of the boxes as primary and identify all items in the 
> datastore that absolutly must not be subject to race conditions between 
> the two boxes (message UUID for example). In addition to implementing 
> the replication needed for #1 modify all functions that need to update 
> these critical pieces of data to update them on the master and let the 
> master update the other box.

We may be talking at cross purposes (and its entirely likely that I've
got the wrong end of the stick!), but I consider active-active to be
the case where there is no primary: users can make changes to either
system, and if the two systems lose touch with each other they have
to resolve their differences when contact is reestablished.

UUIDs aren't a problem (each machine in a cluster owns its own fraction of 
the address space). Message UIDs are a big problem. I guess in the case of 
conflict, you could bump the UIDvalidity value on a mailbox and reassign 
UIDs for all the messages, using timestamps determine the eventual 
ordering of messages. Now that I think about it, maybe that's not a 
totally absurd idea. It would involve a lot of work though.

>  Pro:
>   best use of available hardware as the load is split almost evenly between 
> the boxes.
> best availability becouse if there is a failure half of the clients won't 
> see it at all

Actually this is what I do right now by having two live mailstores. Half 
the mailboxes on each system are active, the remainder are passive.

David Carter                             Email: David.Carter at
University Computing Service,            Phone: (01223) 334502
New Museums Site, Pembroke Street,       Fax:   (01223) 334679
Cambridge UK. CB2 3QH.
Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list