Colloquium Speaker

Speaker: 

Iulian Neamtiu, Computer Science Department, University of Maryland, College Park

Topic: 

Practical Dynamic Software Updating

Date: Thursday, February 28, 2008
Time: 11:00 AM
Place: Gould-Simpson, Room 906
Light Refreshments will be served in the 9th floor atrium of Gould-Simpson at 10:45 AM

Abstract

Software updates typically require stopping and restarting an application, but many systems cannot afford to halt service, or would prefer not to. Dynamic Software Updating (DSU) addresses this difficulty by permitting programs to be updated while they run. DSU is appealing compared to other approaches for on-line upgrades because it is general, preserves state and requires no redundant hardware. However, despite its appeal, DSU has seen limited use in mainstream software development, because it is not yet practical for mainstream programming languages. In this talk I will present an approach and a tool suite called Ginseng for dynamically updating single-threaded and multi-threaded C programs in a safe, flexible, and efficient manner.

Ginseng compiles programs specially so that they can be dynamically patched, and generates most of a dynamic patch automatically. Ginseng also performs a series of static analyses that ensure an update will not violate 1) type-safety (while guaranteeing that data is kept up-to-date), and 2) transactional version consistency (a novel update correctness property where programmers designate blocks of code as transactions whose execution must always be attributable to a single program version).

We have used Ginseng to construct and dynamically apply patches to six substantial open-source programs: three single-threaded servers (vsftpd, OpenSSH sshd, and GNU Zebra), and three multi-threaded servers (Memcached, Icecast and Space Tyrant). We dynamically patched these programs with six months to four years' worth of releases, for a total of 40 updates. Performance experiments show that while DSU support affects application performance, the impact is not significant.


Iulian Neamtiu is completing his Ph.D. in Computer Science at the University of Maryland, College Park, under the direction of Prof. Michael Hicks. His research interests span the areas of programming languages, operating systems, and software engineering. Broadly, his aim is safe, available, secure and scalable software. Prior to starting his Ph.D. studies, he was a Software Design Engineer at Nokia Networks R&D in Germany, and a Visiting Researcher at Technical University of Munich.


Back to Index