About Me

I am a second year PhD student in the CS department working on the LoCal project with David Culler and Randy Katz. My current research is on using software techniques to reduce energy usage of clusters running Internet services. I have also done work on characterizing power consumption in various devices. I am interested in this class to get a better understand of techniques used for parallel programming and their potential applications to saving energy.

Scalable Internet Services

Popular web sites such as Amazon, eBay, Facebook and Google provide rich, complex services to millions of users each day. This can only be accomplished through massive parallelism. Typically a large-scale service architecture is employed as shown in Figure 1 [3]. Key features include the use of many stateless servers for easy parallelization with minimal shared state stored on a shared filesystem or database [1].

Figure 1. Architecture of an online site [3].

Generally, this model works very well, however, one of the key challenges is minimizing the amount of shared state. Shared state is an issue because it is either kept at a central location (e.g. a database server) creating a bottleneck or it must be kept synchronized across distributed nodes. Both approaches limit the parallelism and potential scalability of the application. In practice, algorithms are adapted to minimize updates, allowing shared data to be efficiently replicated, or a "eventual consistency" model is used [2].

These applications are run on many distributed machines. For example, "The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world." [4]


[1] E. Brewer, “Lessons from Giant-Scale Services," IEEE Internet Computing, vol. 4, no. 4, July/Aug. 2001, pp. 46-55.

[2] A. Fox, S. Gribble, Y. Chawathe, E. Brewer, P. Gauthier, "Cluster-based scalable network services." SIGOPS Oper. Syst. Rev. 31, 5 (Dec. 1997), 78-91.

[3] D. Oppenheimer, D. Patterson, "Architecture and Dependability of Large-Scale Internet Service," IEEE Internet Computing, Sept. 2002.

[4] DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., and Vogels, W. 2007. Dynamo: amazon's highly available key-value store. SIGOPS Oper. Syst. Rev. 41, 6 (Oct. 2007), 205-220.