The Reverse C10K Problem for Server-Side Mashups

  • Dong Liu
  • Ralph Deters
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5472)

Abstract

The original C10K problem [1] 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.

Keywords

HTTP Mashup Scalability Performance Client C10K RC10K 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Kegel, D.: The c10k problem. Web (September 2006), http://www.kegel.com/c10k.html
  2. 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. 3.
    The Internet Society: Hypertext transfer protocol – http/1.1. Web (June 1999), http://tools.ietf.org/html/rfc2616
  4. 4.
    Darcy, J.: High-performance server architecture. Web (August 2002), http://pl.atyp.us/content/tech/servers.html
  5. 5.
    Barish, G.: Building scalable and high-performance Java Web applications using J2EE technology: Using J2EE Technology. Addison-Wesley, Reading (2002)Google Scholar
  6. 6.
    Stevens, W.R.: Advanced Programming in the UNIX Environment. Addison-Wesley Professional, Reading (1992)MATHGoogle Scholar
  7. 7.
    Dollimore, J., Kindberg, T., Coulouris, G.: Distributed Systems: Concepts and Design, 4th edn. Addison-Wesley, Reading (2005)MATHGoogle Scholar
  8. 8.
    Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 7th edn. John Wiley & Sons, Chichester (2004)MATHGoogle Scholar
  9. 9.
    The Internet Society: Hypertext transfer protocol – http/1.0. Web (May 1996), http://tools.ietf.org/html/rfc1945
  10. 10.
    Gourley, D., Totty, B., Sayer, M., Reddy, S., Aggarwal, A.: HTTP: The Definitive Guide. O’Reilly, Sebastopol (2002)MATHGoogle Scholar
  11. 11.
    Hasan, J., Tu, K.: Performance Tuning and Optimizing ASP .NET Applications. Apress (2003)Google Scholar
  12. 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. 13.
    Haines, S.: Pro Java EE 5 Performance Management and Optimization. Apress (2006)Google Scholar
  14. 14.
    Beloglavec, S., Heričko, M., Jurič, M.B., Rozman, I.: Analysis of the limitations of multiple client handling in a java server environment. SIGPLAN Not. 40(4), 20–28 (2005)CrossRefGoogle Scholar
  15. 15.
    Li, P., Zdancewic, S.: Combining events and threads for scalable network services implementation and evaluation of monadic, application-level concurrency primitives. SIGPLAN Not. 42(6), 189–199 (2007)CrossRefGoogle Scholar
  16. 16.
    Wilkins, G.: Jetty 6 architecture. Web (November 2006), http://docs.codehaus.org/display/JETTY/Architecture
  17. 17.
    Queinnec, C.: Inverting back the inversion of control or, continuations versus page-centric programming. SIGPLAN Not. 38(2), 57–64 (2003)CrossRefGoogle Scholar
  18. 18.
    Gomez, J.C., Ramos, J.R., Rego, V.: Signals, timers, and continuations for multithreaded user-level protocols. Softw. Pract. Exper. 36(5), 449–471 (2006)CrossRefGoogle Scholar
  19. 19.
    W3C: The xmlhttprequest object. Web (April 2008), http://www.w3.org/TR/XMLHttpRequest/

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Dong Liu
    • 1
  • Ralph Deters
    • 1
  1. 1.Department of Computer ScienceUniversity of SaskatchewanSaskatchewanCanada

Personalised recommendations