DotSlash Providing Dynamic Scalability to Web Applications

Document Sample
DotSlash Providing Dynamic Scalability to Web Applications Powered By Docstoc
					                                     DotSlash: Providing Dynamic Scalability to Web Applications
                                                                   Weibin Zhao and Henning Schulzrinne
                                                            Department of Computer Science, Columbia University

                             The Problem                                                      DotSlash Implementation                                                                         DotSlash Performance
• Web hotspots, also known as flash crowds, or the Slashdot effect           • A prototype system for the LAMP (Linux,                                                         • Benchmarks: httperf for static content and
• Short-term dramatic load spikes  “15 minutes of fame”                     Apache, MySQL, and PHP) configuration                                                             RUBBoS bulletin board for dynamic content
• Unacceptable to sacrifice availability by losing valuable users in the     • A DotSlash Apache module (Mod_dots) for per                                                     • Experimental setup: our local area network
critical period, but uneconomic to invest on more powerful infrastructure    request processing                                                                                and PlanetLab
which is idle most of time                                                   • A DotSlash daemon (Dotsd) for rescue control                                                    • Achieve a 10-fold improvement for static
                                                                             • A DotSlash PHP extension for dynamic script                                                     content when access network is bottleneck
                         DotSlash Approach                                   replication                                                                                       • Completely remove the web/application server
                                                                             • A cache-enhanced PHP data driver for MySQL                                                      bottleneck via dynamic script replication
• A self-configuring and scalable rescue system designed to counteract       databases for on-demand query result caching                                                      • Relieve the database server bottleneck via on-
the Slashdot effect, which allows a web site to obtain resources             • DNS domain for dynamic DNS                                                        demand query result caching
dynamically and use them autonomically without any administrative            update                                                                                            • Improve the maximum request rate supported
intervention to set up a distributed web server system on the fly            • Enhanced Service Location Protocol (SLP) for                                                    by a factor of 5 and 10 for the RUBBoS
• Providing dynamic scalability to web applications by addressing            rescue server discovery                                                                           submission and read-only mix, respectively
bottlenecks at access network bandwidth, web servers, application
servers, and database servers
                                                                               Basic Architecture                                                                              Dynamic Script Replication
                             Usage Models
• Focusing on small web sites                                                          HTTP
                                                                                                  Mod_dots        Shared
                                                                                                                                                 DotSlash         Other
                                                                                                  Apache          Memory                                          Dotsd                                         Origin Server                   Database
• Aiming at utilizing spare capacity in a mutual-aid community to handle    Client                                                            Rescue Protocol
short-term load spikes, also useful for commercial hosting companies                                                  DNS                     SLP                                  Client
                                                                                                                                                                                                  (2)             (4)     (5) PHP   (6)
                                                                                                                                                                                                        (3)                                     MySQL
                                                                                                                      BIND                 mSLP                                               (8)               Rescue Server
• Transparent to clients and applications: no need to change client
browsers and application programs                                             Basic Rescue                            I. HTTP redirect & cache miss                                On-demand Query Result Caching
• Low cost: based on existing systems, no additional hardware cost                                                    II. DNS RR & cache hit
                                                                                                                                            Origin Server
                          Basic Components                                                                             (8) Reverse proxy                                                                                Query Result Cache
•   Workload monitoring for network and CPU                                     Dynamic                                (9)
                                                                                                                                   Dynamic                Cache                                  Server
                                                                                  DNS                                                                                                                                                             Server
•   Rescue server discovery                                                                       (3)      (4) HTTP redirect         DNS            (7)   (10)            Client                                             Data Driver
•   Request redirection via DNS round robin and HTTP redirect                           DNS                                            DNS
•   Dynamic virtual hosting for serving new content on the fly               DNS RR
                                                                                                                                                                                            Rescue Server
•   Adaptive rescue control
•   Dynamic replication of application programs                                                         (2)    Client1     (6)                                                                          Query Result Cache
•   On-demand distributed query result caching                                             (1)                                                                                    Server
                                                                                                                                                                                                                             Data Driver           Server
                                                                                                        (2)    Client2     (3)

                                                                                           (1)                      (4)

                                   More information available from or by email to