R A wrote:
Seth Mattinen wrote:
Multiple master in MySQL is still more of a hack. Also, performance for billion-row SQL tables is rather poor for something interactive like clicking on a message in IMAP and expecting it to pop up right away.
I'm looking forward to master-master replication. Not SQL though; I can't find the link now but I remember reading about a master-master system that Dovecot would use to sync maildir/dbox over N masters or something. A pool of beefy master-master Dovecots with a load balancer in front of them would be wonderful - I'm not too keen on the "user a goes on server a, user b on server b" system. I'd love to help out but my own development schedule is beyond full at the moment. =)
~Seth
Well, what I would like to see is multiple servers, where mail can come in simultaniously for user a at both server a,b and c. But a user is only connected to one server at a time, although it can be any of them. DNS would solve this as they all have the name and mx value. The MTA issue is trivial to sync mail between them (as long as sieve filters isnt used or updated anyway and that has not propagated) but IMAP and POP3 would be a bit trickier. No load balancer as say you have one server on one isp in canada, one in australia, and one in germany. Say the link suddenly go down to the server in australia for an hour, once it comes up you want them to resync automatically.
Basically your not to keen scenario, but worse, as b can go on a, and then next time on b. Which means that a user can do things like delete a file twice, move it to two different locations etc. All you have to go on would be timestamps to resolve conflicts, so the servers pretty much would have to use ntp for this to work.
I found the message: [Dovecot] Replication milestone 1 http://www.dovecot.org/list/dovecot/2008-May/030446.html
This is something I can certainly provide infrastructure for (load balancer plus 3 or 4 servers) and possibly throw my hat in as a sponsor. But I have no idea how much progress Timo has made on this.
~Seth