Re: Funding Cyrus High Availability

From: David Carter (no email)
Date: Sun Sep 19 2004 - 06:37:58 EDT

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: 
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:

Hosted Email Solutions

Invaluement Anti-Spam DNSBLs

Powered By FreeBSD   Powered By FreeBSD