---------- Forwarded message ----------
From: James Tavares <
james....@gmail.com>
Date: Mon, Nov 16, 2009 at 10:37 PM
Subject: Re: [csci2950-u] 11/17 Reviews - Chrome
To: Rodrigo <
rodrigo...@gmail.com>
*Chrome*
Paper Title: Isolating Web Programs in Modern Browser Architectures
Author(s): Charles Reis, Steven D. Gribble
Date: EuroSys ’09. April 1-3, 2009.
Novel Idea: The paper seeks to automatically identify and isolate
instances of *web programs* so that they can be run in distinct
operating system processes. Recognizing that these boundaries are
impossible to decipher in the current architecture of the web, the
authors offer the less precise, but more concrete definitions of
/site/ (all pages in the same <protocol, domain port> tuple, to
approximate a *web program*), /browsing instance/ (the set of
interconnected tabs and windows, even if they are not on the same
site), and /site instance/ (a /site/ within a /browsing instance/, to
approximate *web program instance*). Finally, in their implementation
of Chrome, the authors allow the user to select from the following
isolation models: monolithic, process-per-browsing-instance,
process-per-site-instance, or process-by-site.
Main Result(s)/Evidence: The Chrome architecture is presented (see
above), and in the evaluation the authors attempt to “confirm” their
design choices. From these experiments the authors make claims that
multi-process browsing has: higher fault tolerance (a crash on one
page only crashes one browsing instance), greater accountability (OS
task manager shows resource usage per browsing instance), better
memory management, quicker responsiveness (user-perceived latency
interacting with one page while another is loading), and faster
simultaneous rendering of multiple web pages. The increased latency
for creating a new process for each browsing instance is offset by the
speed-up inherent in parallelizing page loading & rendering, but
memory overhead is high compared to the monolithic approach and
increases linearly (with a greater slope than monolithic) as the
number of browsing instances increases.
Impact: Remains to be seen – a year after its release, chrome’s market
share is at 5% but is indeed trending higher
(
http://thenextweb.com/2009/10/25/chrome-nears-5-market-share/). Given
that multi-core processors are here to stay, it would seem that
monolithic browsers will eventually need to be replaced with browsers
that have greater and greater opportunities for parallelism. Chrome is
a small first step in this direction.
Prior/Competitive Work: Chrome is preceded by monolithic browsers such
as Firefox, IE and Konqueror. Site-specific browsers use user-created
desktop shortcuts to run new instances of a web browser such as
Firefox for a particular site. Chrome differs from the latter in that
it is able to automatically infer web program boundaries.
Reproducibility: Chrome is available as a free download and Chromium
source is available for download. The experiments would be fairly
trivial to reproduce.
Question: I think that there are good arguments for isolating
different web apps besides speed improvements (such as for increased
security), but if we’re only looking for speed, couldn’t many of the
speed improvements mentioned in this paper be attained by
multi-threading the rendering engine? A simple per-site-instance lock
could be used to ensure serialization on DOMs located within the same
site-instance (as recommended in section 2.3.1.).
Criticism: The authors claim that they did not evaluate against other
browsers to “avoid capturing irrelevant implementation differences in
our results”. They should have at least compared monolithic Chrome to
some other modern browser. Without this, nearly all of their
performance based measurements are useless for comparison – how do we
know that monolithic Chrome is not really slow? Maybe there are
monolithic architectures (firefox, etc) that outperform Chrome’s
multi-process approach!
Future Work: Perhaps there is a transparent way to include web
principle data (cookies, etc) in the /browsing instance/ as well. I
frequently find myself needing to log into the same website under two
aliases at the same time, which almost always means opening sessions
under alternate browsers (IE, Firefox, etc).