Computer Science Department
School of Computer Science, Carnegie Mellon University
A Self-Service Approach
Michael K. Reiter*, Asad Samar**
This report supercedes Computer Science
We describe a system that enables services to scale to large numbers of clients, without the addition of new server resources and without sacrificing service consistency. Our system best supports services whose state can be decomposed into service objects that are typically accessed individually. Scalability is achieved by migrating these objects and outsourcing operation processing to the clients themselves. We present novel algorithms for ensuring consistency of the service and for recovering objects if a client disconnects and leaves the latest versions of objects unreachable. Our system outperforms a centralized service implementation when object state (and thus object migration cost) is small, and when operations are compute-intensive (thus taking advantage of client processing power). In addition, a client executing its own operations enables applications in which the client is unwilling to send its operations elsewhere for processing, due to privacy concerns. We demonstrate these advantages through the evaluation of a prototype network traffic classification service built using our system.
*Department of Electrical and Computer Engineering and Computer Science Department **Department of Electrical and Computer Engineering, Carnegie Mellon University