Turning flash crowds into smart mobs with real-time stochastic detection and adaptive cooperative caching

The past decade has experienced a continued increase in the popular use of Web services. Unfortunately, the growth of Web services, coupled with their their role as a vital source of news and information has lead to many well published sources of stress that tend to cripple performance at both the client and the server side [1, 4]. Our work considers one such type of stress, called a flash crowd. A flash crowd arrives as a tidal wave, where the initial (and largest) spike in traffic generally occurs within the first few minutes. This gives client and servers only a few tens of seconds to adapt to the incoming traffic! In addition, flash crowds are infrequent and unpredictable. Hence, any solution deployed to mitigate flash crowd must consist of: (1) proactive and real-time mechanisms to detect the flash crowd while (or even before) it happens, and (2) an initiation of immediate action that can mask the effects of the stress.A variety of system designs for content delivery have emerged over the past few years. Based on their underlying design methodologies, we classify these existing designs into four classes. We use this taxonomy to compare the effectiveness of the existing designs to mitigate flash crowds. The four classes are: (1) Single server solutions that target core server performance, such as SEDA [6]; (2) Server cooperation solutions that distribute content through cooperation amongst multiple servers, such as Coral [2]; (3) Server-Client solutions that require changes to the behavior of both the client and server side, such as Overhaul [5]; (4) Client cooperative caching solutions that utilize peer-to-peer routing substrates, such as Squirrel [3].We follow a four-step approach in our study of flash crowds:• Characteristics of flash crowds: We study the properties of six real flash crowds based on traces collected from the respective websites.• Real-time Flash Crowd Detector: We present the design and implementation of a real-time stochastic detector of flash crowds, running at the server. A detector must continuously monitor visitor traffic and resource utilization, and be able to immediately and accurately flag a flash crowd in real-time. Additionally, the detector must run efficiently, without consuming significant computational and memory resources, especially during normal operations. We find that our design enables us to detect a flash crowd while the event is happening.• Comparison of existing solutions: We use flash crowd traces to compare the effectiveness of three of the four methodologies discussed above. We measure both network utilization of the server (a resource which directly affects the content provider's costs) and the quality of service as perceived by the clients (i.e., the turnaround latency for each request).• Design of an Adaptive Cooperative Caching Solution: We combine our real-time flash crowd detector at the server, with a cooperative caching scheme among clients, to design an adaptive cooperative caching solution for flash crowds. We compare the performance of this scheme with the existing methodologies. Our results reveal that such an approach is extremely effective in turning a flash crowd into a smart mob.