Safe at any speed: fast, safe parallelism in servers

  • Authors:
  • John Jannotti;Kiran Pamnany

  • Affiliations:
  • Brown University;Brown University

  • Venue:
  • HotDep'06 Proceedings of the Second conference on Hot topics in system dependability
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many applications take advantage of parallelism to increase performance. Servers are a particularly common case as they must multiplex resources across many simultaneous users. Unfortunately, writing concurrent applications is difficult and prone to subtle and non-deterministic bugs that are difficult to reproduce. We advocate an approach to developing concurrent programs that is safe by default. Conservative static analysis determines when two code segments may safely run in parallel, and a runtime scheduler respects these constraints. We have built an analyzer for event-driven servers that discovers data sharing to find safe parallelism among event handlers. As a prototype, the analysis currently considers only global data, assuming that request-specific data structures passed to event handlers are completely independent. We have also begun work on a runtime system that schedules event handler execution within the constraints determined by the analyzer. For performance reasons, the scheduler makes additional conservative assumptions about contention. We have analyzed thttpd, an event-driven web server. We show how our system can be used to increase performance without complex synchronization schemes.