A Methodology for Detection and Estimation of Software Aging
ISSRE '98 Proceedings of the The Ninth International Symposium on Software Reliability Engineering
Software Rejuvenation: Analysis, Module and Applications
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
Autopilot: automatic data center management
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
AjaxScope: a platform for remotely monitoring the client-side behavior of web 2.0 applications
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Object ownership profiling: a technique for finding and fixing memory leaks
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Remus: high availability via asynchronous virtual machine replication
NSDI'08 Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation
ASSURE: automatic software self-healing using rescue points
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Isolating web programs in modern browser architectures
Proceedings of the 4th ACM European conference on Computer systems
An analysis of the dynamic behavior of JavaScript programs
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Mugshot: deterministic capture and replay for Javascript applications
NSDI'10 Proceedings of the 7th USENIX conference on Networked systems design and implementation
GATEKEEPER: mostly static enforcement of security and reliability policies for javascript code
SSYM'09 Proceedings of the 18th conference on USENIX security symposium
Compartmental memory management in a modern web browser
Proceedings of the international symposium on Memory management
WaRR: A tool for high-fidelity web application record and replay
DSN '11 Proceedings of the 2011 IEEE/IFIP 41st International Conference on Dependable Systems&Networks
JavaScript Errors in the Wild: An Empirical Study
ISSRE '11 Proceedings of the 2011 IEEE 22nd International Symposium on Software Reliability Engineering
Hi-index | 0.00 |
Current approaches for improving the reliability of web services focus on server side data collection and analysis to detect errors and prevent failures. However, significant portions of modern web applications are executed on the client browser with the server only acting as a data store. These applications are mostly developed using Javascript, which presents a challenge for developing reliable web applications due to a current lack of tools for debugging Javascript applications. In addition, these applications use AJAX to communicate with the server asynchronously; therefore they remain on the same page during their lifetime that can lead to runaway memory usage from even minor memory leaks. In this paper, we introduce MemRed, a system that improves the reliability of the client side of web applications. It achieves this goal by taking advantage of browser APIs to monitor web applications. It analyzes the collected data to detect excessive memory utilization and applies recovery action to hide failures from end users, if needed. Our prototype is implemented as an extension for the Chrome browser. The evaluation shows the effectiveness of recovery actions in lowering memory usage of web applications.