Imposing a Memory Management Discipline on Software Deployment

  • Authors:
  • Eelco Dolstra;Eelco Visser;Merijn de Jonge

  • Affiliations:
  • Utrecht University;Utrecht University;Utrecht University

  • Venue:
  • Proceedings of the 26th International Conference on Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The deployment of software components frequently failsbecause dependencies on other components are not declaredexplicitly or are declared imprecisely. This resultsin an incomplete reproduction of the environment necessaryfor proper operation, or in interference between incompatiblevariants. In this paper we show that these deploymenthazards are similar to pointer hazards in memory models ofprogramming languages and can be countered by imposinga memory management discipline on software deployment.Based on this analysis we have developed a generic, platformand language independent, discipline for deploymentthat allows precise dependency verification; exact identification of component variants; computation of complete closures containing all components on which a component depends;maximal sharing of components between such closures;and concurrent installation of revisions and variantsof components. We have implemented the approach in theNix deployment system, and used it for the deployment of alarge number of existing Linux packages. We compare its effectivenessto other deployment systems.