On Thu, 2008-06-12 at 23:54 +0100, Gordan Bobic wrote: > Paul J Stevens wrote: > > >>> I've probably asked this before however can someone remind me why mysql > >>> master-master (innodb) replication is not recommend with dbmail? > >> It's not "recommended" with anything. By the very nature of it, there is > >> a potential very nasty race condition inherent in multi-master MySQL > >> replication. In practice you'd have to be extremely unlucky to encounter > >> it, but since there is no cluster-wide locking available in this setup, > >> it is a possibility. FWIW, I use it with multi-master replication. YMMV. > > > > These conditions will not be very rare at all once you start putting > > pressure on it. > > > > But there is another reason in the imap requirements: UID values must be > > strictly ascending within a mailbox. > > > > Since these UID values are the autoincremented primary key on the > > mailboxes table the only way to avoid collisions in the first place is > > by stepping them differently on the separate masters, but doing that > > will collide with the imap requirement I mentioned. > > Hmm... I'll have to think about that case and try a few tests. Unless > there is a serious race condition encountered (which will only happen if > the same user has multiple simultaneous connections to separate > servers), I think the staggered auto-increments will still resolve > correctly (there will just be holes in the key-space, which I don't > think would cause problems). > > I'm not saying it's a good idea, but I think the scope for a damaging > race condition is reasonably limited.
The issue, if I recall, is more that once the two servers come back online, and the databases sync up again, messages that were delivered (either via smtp or imap append) on the "other" server (that the user wasn't connected to) could have a lower uid than what it's already seen, so the client will never see or request those emails, and effectively looses them. I think there was something with a uidvalidity call or something that can trigger the client to reload the whole mailbox (don't know if it's client or server-driven, etc.), which is less than optimal with a large mailbox. -- Jesse Norell Kentec Communications, Inc. [EMAIL PROTECTED] _______________________________________________ DBmail mailing list [email protected] https://mailman.fastxs.nl/mailman/listinfo/dbmail
