UC Berkeley recently migrated to an open source/free software email
system based on Exim, Cyrus, and SquirrelMail. Because users are
especially intolerant of downtime when it comes to email, all of our
systems are built with redundancy and fault tolerance in mind. Many
email systems use LDAP to store account data (often piggybacking on
enterprise directory data that are already present), and ours did at
first as well. But we soon found that our enterprise LDAP system
wasn’t able to meet the reliability and performance requirements
demanded by an email system that processes 4 million messages per day.
We built a MySQL cluster on hardware that we were already using to
power the mail system itself. NDB data nodes share space with Cyrus
on our backend mail storage machines, and MySQL servers acting as API
nodes run on each of our redundant frontend MTA servers. The result
is an extremely stable database for our account data that is easily
used by all of the components of the email system.
In addition to an overview of how we designed and built the cluster,
including schema challenges, we will also show how we integrate it
into our application components with code and configuration samples:
James is currently a system administrator responsible for UC Berkeley’s campus email system. He uses MySQL cluster to unify a range of free software systems into a cohesive platform.
Paul Fisher is a principal email systems administrator and manager of the central campus collaboration tools group at UC Berkeley.
View a complete list of MySQL contacts.