The Reverse C10K Problem for Server-Side Mashups
The original C10K problem  studies how to provide reasonable service to 10,000 simultaneous clients or HTTP requests using a normal web server. We call the following problem the reverse C10K problem, or RC10K — how to support 10,000 simultaneous outbound HTTP requests running on a web server. The RC10K problem can be found in scenarios like service orchestrations and server-side mashups. A server-side mashup needs to send several simultaneous HTTP requests to partner services for each inbound request. Many approaches to improving the performance and scalability of HTTP servers can be applied to tackle the original C10K problem. However, whether these approaches can tackle the reverse C10K problem needs to be verified. In this paper, we discuss the RC10K problem for server-side mashups, and propose a design that takes advantage of advanced I/O, multithreading, and event-driven programming. The results of analysis and experiments show that our design can reduce the resource requirements by almost one order of magnitude with the same performance provided, and it is promising to tackle the RC10K problem.
KeywordsHTTP Mashup Scalability Performance Client C10K RC10K
Unable to display preview. Download preview PDF.
- 1.Kegel, D.: The c10k problem. Web (September 2006), http://www.kegel.com/c10k.html
- 2.Ort, E., Brydon, S., Basler, M.: Mashup styles, part 1: Server-side mashups. Web (May 2007), http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/
- 3.The Internet Society: Hypertext transfer protocol – http/1.1. Web (June 1999), http://tools.ietf.org/html/rfc2616
- 4.Darcy, J.: High-performance server architecture. Web (August 2002), http://pl.atyp.us/content/tech/servers.html
- 5.Barish, G.: Building scalable and high-performance Java Web applications using J2EE technology: Using J2EE Technology. Addison-Wesley, Reading (2002)Google Scholar
- 9.The Internet Society: Hypertext transfer protocol – http/1.0. Web (May 1996), http://tools.ietf.org/html/rfc1945
- 11.Hasan, J., Tu, K.: Performance Tuning and Optimizing ASP .NET Applications. Apress (2003)Google Scholar
- 12.Urgaonkar, B., Pacifici, G., Shenoy, P., Spreitzer, M., Tantawi, A.: An analytical model for multi-tier internet services and its applications. In: SIGMETRICS 2005: Proceedings of the 2005 ACM SIGMETRICS international conference on Measurement and modeling of computer systems, pp. 291–302. ACM Press, New York (2005)Google Scholar
- 13.Haines, S.: Pro Java EE 5 Performance Management and Optimization. Apress (2006)Google Scholar
- 16.Wilkins, G.: Jetty 6 architecture. Web (November 2006), http://docs.codehaus.org/display/JETTY/Architecture
- 19.W3C: The xmlhttprequest object. Web (April 2008), http://www.w3.org/TR/XMLHttpRequest/