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.