Highly Reliable Upgrading of Components

``Highly Reliable Upgrading of Components'' by Jonathan E. Cook and Jeffery A. Dage. In Intl. Conf. on Software Engineering, (Los Angeles, CA), 1999.
Annotation: Maintains and runs multiple versions of a component simultaneously to avoid introducing errors at upgrades. For example, suppose version 1 of a component has a method whose input is any nonnegative number, and suppose version 2 accepts any number. Then, this system uses version 2's output for nonpositive numbers and uses version 1's for positive numbers (the idea being version 1 probably works fine for positive numbers, but version 2 might be broken). The system monitors version 2's output on positive numbers and records statistics on whether it makes any errors. The upgrader can examine these statistics to determine whether version 1 can be removed in favor of version 2. This work does not seem to address the problem of state divergence between components (i.e., since version 2 sees some requests that version 1 does not, version 2's state may diverge from version 1's).

BibTeX entry:

@inproceedings{cook99highly,
   author = {Jonathan E. Cook and Jeffery A. Dage},
   title = {Highly Reliable Upgrading of Components},
   booktitle = {Intl. Conf. on Software Engineering},
   address = {Los Angeles, CA},
   year = {1999}
}

Also see software upgrades publications by date.

Sameer Ajmani