Dynamic Software Updates for Unmodified Browsers through Multi-Version Execution
Siddhanth Venkateshwaran, Ellen Kidane, Lu\'is Pina

TL;DR
SINATRA enables instantaneous, zero-downtime browser updates by capturing non-deterministic JavaScript events and using multi-version execution to seamlessly switch between browser versions without data loss.
Contribution
It introduces a novel MVX-based approach for JavaScript that supports unmodified browsers and automates page modifications for seamless updates.
Findings
Requires 5MB storage for events
Memory grows at 23.1KB/s during interaction
Update switching time is 353ms
Abstract
In this paper, we present the design, implementation, and evaluation of SINATRA, which supports instantaneous browser updates that do not result in any data loss through a novel Multi-Version eXecution (MVX) approach for JavaScript programs. SINATRA works in pure JavaScript, does not require any browser support, thus works on closed-source browsers, and requires trivial changes to each target page, that can be automated. First, SINATRA captures all the non-determinism available to a JavaScript program (e.g., event handlers executed, expired timers, invocations of Math.random). Our evaluation shows that SINATRA requires 5MB to store such events, and the memory grows at a modest rate of 23.1KB/s as the user keeps interacting with each page. When an update becomes available, SINATRA transfer the state by re-executing the same set of non-deterministic events on the new browser. During this…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Security and Verification in Computing · Parallel Computing and Optimization Techniques
