[Dovecot] Replication protocol design
Asheesh Laroia
asheesh at asheesh.org
Tue Apr 29 02:33:08 EEST 2008
On Tue, 29 Apr 2008, Timo Sirainen wrote:
> I'll probably be implementing multi-master replication this summer. My
> previous thoughts about it are here:
> http://dovecot.org/list/dovecot/2007-December/027284.html
>
> Below is a description of how the replication protocol will probably
> work. It should work just as well for master-slave and multi-master
> setups. Comments welcome. I'll write later a separate mail about how
> it'll be implemented to Dovecot.
(I'm CC:ing tv since he and I once chatted about IMAP replication.)
Multi-master will be very interesting. I'm really curious what you will
do as far as this scenario:
1. A mail arrives in server1
2. User reads it (therefore the mail has a UID assigned)
3. server2 gets isolated from server1
4. A mail arrives at server2
5. User logs in to server2 and reads it (therefore the mail has a UID
assigned)
6. server2 and server1 are connected again, and are told to sync
Questions:
a. Does the client get told two different messages have the same UID in
the folder?
b. What is the graceful sync proposal?
Oh, look - you mention that right at the end of your protocol:
> A special case is when two servers have been saving messages
> independently from each others. In this case it's possible that the
> servers have used the same UIDs for different messages (different global
> UIDs). These need to be resolved by giving both conflicting UIDs new
> unused UIDs, otherwise IMAP clients may show them as wrong messages from
> their caches.
>
> FIXME: If the other server had expunged a conflicting UID it still
> should be given a new UID. How do we find out this has happened?
I guess this doesn't address my Question (a), though.
The above scenario may be handled by your root-based election process -
but what prevents two roots from simultaneously existing, and therefore
two masters existing, and then the above scenario happening?
I'm really interested to see where this goes - I think this would be
really swell as a replacement for my use of offlineimap. I also want to
have you consider letting non-root users use Dovecot replication features;
that way, I could just have a cron job that asks my laptop's Dovecot to
replicate from my server's Dovecot, without giving it any special
permissions.
Thanks for all the great work Dovecot represents!
-- Asheesh.
--
I joined scientology at a garage sale!!
More information about the dovecot
mailing list