2006 USENIX Annual Technical Conference Abstract
Pp. 129142 of the Proceedings
Flux: A Language for Programming High-Performance Servers
Brendan Burns, Kevin Grimaldi, Alexander Kostadinov, Emery D. Berger, and Mark D. Corner, University of Massachusetts, Amherst
Programming high-performance server applications is challenging: it is
both complicated and error-prone to write the concurrent code required
to deliver high performance and scalability. Server performance
bottlenecks are difficult to identify and correct. Finally, it is
difficult to predict server performance prior to deployment.
This paper presents Flux, a language that dramatically simplifies the
construction of scalable high-performance server applications. Flux
lets programmers compose off-the-shelf, sequential C or C++ functions
into concurrent servers. Flux programs are type-checked and guaranteed
to be deadlock-free. We have built a number of servers in Flux,
including a web server with PHP support, an image-rendering server, a
BitTorrent peer, and a game server. These Flux servers match or exceed
the performance of their counterparts written entirely in C. By
tracking hot paths through a running server, Flux simplifies the
identification of performance bottlenecks. The Flux compiler also
automatically generates discrete event simulators that accurately
predict actual server performance under load and with different
- View the full text of this paper in HTML and PDF. Listen to the presentation in MP3 format.
Until June 2007, you will need your USENIX membership identification in order to access the full papers. The Proceedings are published as a collective work, © 2006 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.