I browsed through the mailing list archives - many of the questions I
have are somewhat addressed in older posts; so, given the code has since
been developed further, I'd like to ask a few here - so I'll apologize
ahead of time if I repeat a FAQ that I've not seen.
I'm designing an email infrastructure for a new tech VISP. The system
needs to be designed to support a few thousand users at first, but
quickly be expandable to support 100's of thousands of users (and
possibly more), with multiple domains. Eventually we'll want to
support webmail and per-user configuration of different services.
Our goal is to exploit commodity hardware, without suffering performance
- I believe we can achieve this, as Google has in their own way.
I've spent a large amount of time researching this on the net.
Eventually, I ran into several design issues when trying to address this
large-scale design through a standard filesystem implementation, where
the mailstore is on a private network backend, mounted via NFS. Our
shop is FreeBSD-based, and the MTA we've selected is Postfix.
Here's a list of concerns I've got, there are others (related to this):
o Mbox or Maildir? - each has advantages and disadvantages - a DB may
resolve that issue altogether
o PostgreSQL or MySQL? Each has its merits.
o IMAP sort and indexing - the load this would create on the system -
this is a major concern; could this be distributed amoungst different
databases to load-balance?
o Distributing the accounts evenly across the backend server(s) and
which filesystem to use
o DBmail supports multiple databases - we need some load balancing with
reasonable tcp/ip cutoff points
to avoid any downspiral performance issues - no single point of failure.
o Quotas - how granular is DBMail's quota - we'd like to offer x GB of
space per user, and aggregate that amoungst an offering of 8 mailboxes
per "master account" - the logical approach to this?
o Capacity monitoring
o Deliver to the DB immediately or to a temp mbox file, then to the db
upon login? Concerned about the load on the database server(s)
Are there any Enterprise-scale implementations of DBMail at this time?
I'd be interested in any implementation notes/problems encountered.
Any input/feedback would be appreciated - particularly direct experience
with this scenario.
Thanks,
Forrest