DOHA: scalable real-time web applications through adaptive concurrent execution

Browsers have become mature execution platforms enabling web applications to rival their desktop counterparts. An important class of such applications is interactive multimedia: games, animations, and interactive visualizations. Unlike many early web applications, these applications are latency sensitive and processing (CPU and graphics) intensive. When demands exceed available resources, application quality (e.g., frame rate) diminishes because it is hard to balance timeliness and utilization. The quality of ambitious web applications is also limited by single-threaded execution prevalent in the Web. Applications need to scale their quality, and thereby scale processing load, based on the resources that are available. We refer to this as scalable quality. DOHA is an execution layer written entirely in JavaScript to enable scalable quality in web applications. DOHA favors important computations with more influence over quality based on hints from application-specific adaptation policies. To utilize widely available multi-core resources, DOHA augments HTML5 web workers with mechanisms to facilitate state management and load-balancing. We evaluate DOHA with an award-winning web-based game. When resources are limited, the modified game has better timing and overall quality. More importantly, quality scales linearly with a small number of cores and the game is playable in challenging scenarios that are beyond the scope of the original game.

[1]  Robert Tappan Morris,et al.  Multiprocessor Support for Event-Driven Programs , 2003, USENIX Annual Technical Conference, General Track.

[2]  Srinivasan Seshan,et al.  Donnybrook: enabling large-scale, high-speed, peer-to-peer games , 2008, SIGCOMM '08.

[3]  Srinivasan Seshan,et al.  Colyseus: A Distributed Architecture for Online Multiplayer Games , 2006, NSDI.

[4]  Bennet S. Yee,et al.  Native Client: A Sandbox for Portable, Untrusted x86 Native Code , 2009, 2009 30th IEEE Symposium on Security and Privacy.

[5]  Wu-chi Feng,et al.  Quality-adaptive media streaming by priority drop , 2003, NOSSDAV '03.

[6]  Andrea Tagliasacchi,et al.  Searching for Concurrent Design Patterns in Video Games , 2009, Euro-Par.

[7]  Mihai Burcea,et al.  Transactional memory support for scalable and transparent parallelization of multiplayer games , 2010, EuroSys '10.

[8]  Aiman Erbad,et al.  Paceline: latency management through adaptive output , 2010, MMSys '10.

[9]  Leo A. Meyerovich,et al.  Fast and parallel webpage layout , 2010, WWW '10.

[10]  Andrew Brownsword,et al.  Synchronization via scheduling: techniques for efficiently managing shared state , 2011, PLDI '11.

[11]  Charles Krasic,et al.  Interactivity and scalability enhancements for quality-adaptive streaming , 2008, ACM Multimedia.

[12]  James W. Mickens,et al.  Atlantis: robust, extensible execution environments for web applications , 2011, SOSP '11.

[13]  Benjamin Livshits,et al.  JSMeter: Comparing the Behavior of JavaScript Benchmarks with Real Web Applications , 2010, WebApps.

[14]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[15]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[16]  Hermann Hellwagner,et al.  An evaluation of TCP-based rate-control algorithms for adaptive internet streaming of H.264/SVC , 2010, MMSys '10.

[17]  Ashvin Goel,et al.  Fair and timely scheduling via cooperative polling , 2009, EuroSys '09.

[18]  Leonid Ryzhyk,et al.  Dingo: taming device drivers , 2009, EuroSys '09.