On 25.5.2010, at 20.32, Brad Davidson wrote:
I have some questions about the suggested configuration, as well as the current implementation.
- Does this work for POP3 as well as IMAP?
Yes.
- Is there any reason not to use all 12 of our servers as proxies as well as mailbox servers, and let the director communication route connections to the appropriate endpoint?
So instead of having separate proxies and mail servers, have only hybrids everywhere? I guess it would almost work, except proxy_maybe isn't yet compatible with director. That's actually a bit annoying to implement.. You could of course run two separate Dovecot instances, but that also can be a bit annoying.
- Does putting a host into 'directed proxy' mode prevent it from servicing local mailbox requests?
No. The director service simply adds "host" field to auth lookup replies if the original reply had proxy=y but didn't have host field.
- How is initial synchronization handled? If a new host is added, is it sent a full copy of the user->host mapping database?
Yes. So the connections between the proxies should be pretty fast. I think the maximum bytes transferred per user is 38.
- What would you think about using multicast for the notifications instead of a ring structure? If we did set up all 12 hosts in a ring, it would be conceivable that a site failure plus failure of a single host at the surviving site would segment the ring. Multicast would prevent this, as well as (conceivably) simplifying dynamic resizing of the pool.
The proxies always try to keep connecting to next available server (i.e. if the next server won't connect, it tries one further away until it finally connects to something or reaches itself). So the segmentation could happen only if there was no network connection between the two segments.
I don't know much about how to do multicasting, except I've heard it can be problematic. Also not everything about the ring is simply about broadcasting user states. Most importantly the ring synchronization step during mail server adds/removes that prevents user from being assigned to different servers by different proxies wouldn't work with multicasting.