CassMail: A Scalable, Highly-Available, and Rapidly-Prototyped E-Mail Service
In this paper we present the design and implementation of a scalable e-mail service over the Cassandra eventually-consistent storage system. Our system provides a working implementation of the SMTP and POP3 protocols and our evaluation shows that the system exhibits scalable performance, high availability, and is easily manageable under write-intensive e-mail workloads. The design and implementation of our system is centered around a synthesis of interoperable components for rapid prototyping and deployment. Besides offering a proof of concept of such an approach to prototyping distributed applications, we further make two key contributions in this paper: First, we provide a detailed evaluation of the configuration and tuning of the underlying storage engine necessary to achieve scalable application performance. Second, we show that the availability of scalable storage systems such as Cassandra simplifies the design and implementation of higher-level scalable services, especially when compared to the effort expended in projects with similar goals in the past (e.g., Porcupine). We believe that the existence of infrastructural services such as Cassandra brings us closer to the vision of a universal toolbox for rapidly prototyping arbitrary scalable services.
Unable to display preview. Download preview PDF.
- 1.Armbrust, M., et al.: Above the Clouds: A Berkeley View of Cloud Computing. Technical Report UCB/EECS-2009-28, UC, Berkeley (February 2009)Google Scholar
- 3.Christenson, N., Bosserman, T., Beckemeyer, D.: A Highly Scalable Electronic Mail Service using Open Systems. In: Proc. of the USENIX Symposium on Internet Technologies and Systems, Monterey, CA (1997)Google Scholar
- 5.Elson, J., Howell, J.: Handling Flash Crowds from your Garage. In: USENIX 2008 Annual Technical Conference, Boston, MA (2008)Google Scholar
- 7.Gribble, S., Brewer, E., Hellerstein, J., Culler, D.: Scalable, Distributed Data Structures for Internet Service Construction. In: Proc. of 4th Conference on Operating System Design & Implementation, San Diego, CA (2000)Google Scholar
- 8.Hastorun, D., et al.: Dynamo: Amazon’s Highly Available Key-Value Store. In: Proc. of Symposium on Operating Systems Principles, Stevenson, WA (2007)Google Scholar
- 10.McCormick, J., Murphy, N., Najork, M., Thekkath, C.A., Zhou, L.: Boxwood: Abstractions as the Foundation for Storage Infrastructure. In: Proc. of Conference on Operating Systems Design & Implementation, San Francisco, CA (2004)Google Scholar
- 13.Shvachko, K., et al.: The Hadoop Distributed File System. In: Proc. of IEEE Conf. on Mass Storage Systems and Technologies, Lake Tahoe, NV (2010)Google Scholar
- 14.Thekkath, C., Mann, T., Lee, E.: Frangipani: a Scalable Distributed File System. In: Proc. of the 16th ACM Symposium on Operating Systems Principles, Saint Malo, France (1997)Google Scholar
- 15.Vogels, W.: Eventually Consistent. ACM Queue Magazine (December 2008)Google Scholar
- 16.Vogels, W., Dumitriu, D., Agrawal, A., Chia, T., Guo, K.: Scalability of the Microsoft Cluster Service. In: Proc. of 2nd USENIX Windows NT Symposium, Seattle, WA (1998)Google Scholar