looking for Cyrus mail format documentation

Patrick Welche prlw1 at newn.cam.ac.uk
Wed Feb 5 11:37:58 EST 2003


On Sat, Feb 01, 2003 at 11:31:13AM -0500, Rob Siemborski wrote:
> On Fri, 31 Jan 2003, Phil Howard wrote:
> 
> > | Of course replicating some things such as seen state will be quite
> > | painful, and you may need to do some hacks to keep uids unique between
> > | the machines.
> >
> > How does Cyrus manage uids?  I hope these are not uids in /etc/passwd.
> 
> No, they're the unique identifier numbers for each message.  I believe the
> problem John was asking about is, what happens if you have, say, an APPEND
> happen to a mailbox on both servers while they are not in communication
> with eachother.
> 
> When they resync, each has a new message with the same unique identifier,
> but different contents.  This isn't a situation that can be recoverd from
> just be looking at the contents of the filesystem.
> 
> Doing replicated IMAP stores (espeically geographicly distanct ones) is
> not an easy problem.

All this sounds remarkably similar to the postgres-r database replication
problem cf nice paper by Bettina Kemme
  http://www.cs.mcgill.ca/~kemme/papers/vldb00.html

Here it would be client connects to imap server A and says "APPEND". Server A
then sends "APPEND" to server A and server B using a group communciation
protocol (cf spread) which guarantees the ordering of the commands. Server A
and server B then receive the APPEND and do it. If server B received an APPEND
at nearly the same time, that APPEND would still appear in the same place in
the input queue of both servers => the UID would come out the same. You still
have the hard problem of conflict resolution after network partitioning :(

Just 2 uninformed cents,

Patrick




More information about the Info-cyrus mailing list