UpStare

Submitted by mkgnu on Fri, 08/08/2008 - 12:26.

UpStare is a dynamic software updating system for multi-threaded userspace applications that applies immediate updates using stack reconstruction. The program state and the program code are updated immediately in a single step. It is not necessary to wait indefinitely for a quiescent program state. A running algorithm can be updated midstream its execution and resumed from a different point (not necessarily the beginning) of another algorithm.

Dynamic updates UpStare was able to successfully carry out include:

  • Recursion. Updating an application recursively computing Fibonacci numbers, while nested deep in the stack, to report additional information when the recursion unwinds.
  • Network Sockets. Updating a server application while serving multiple clients without closing the network socket.
  • Multi-threaded Applications. Updating the main function body executed by multiple threads of an application. Also, updating in a producer/consumer multi-threaded application only the consumer threads while the producer threads remained unmodified.
  • Multi-nested Long-Lived Loops. Updating in the middle of executing Bubblesort, a multi-nested long-lived loop, to continue executing from the middle of a different multi-nested long-lived loop implementing Selectionsort while reusing the existing program state. Additionally, updating from Bubblesort to Heapsort, which is a drastically different sorting algorithm executing over different loop iterators.
  • vsFTPd. Updating the multi-process (forked processes do not communicate) vsFTPd 2.0.4 server while serving 50 clients.
  • PostgreSQL. Updating the multi-process (forked processes communicate) PostgreSQL 7.4.16 database server while serving 50 clients.

Documentation:
A users manual is available. [HTML single page][HTML multiple pages][PDF]

Papers on UpStare:

  • Immediate Multi-Threaded Dynamic Software Updates Using Stack Reconstruction. Kristis Makris, Rida Bazzi, Technical Report, Department of Computer Science and Engineering, Arizona State University, April 2008, TR-08-007. [PDF] [BibTex]

Software:
Releases always pass some basic regression tests. Releases are available here.

Resources:
- Mailing list upstare-users
- News and RSS feed.

|