Skip to main content

Modular Software Upgrades for Distributed Systems

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 4067))

Abstract

Upgrading the software of long-lived, highly-available distributed systems is difficult. It is not possible to upgrade all the nodes in a system at once, since some nodes may be unavailable and halting the system for an upgrade is unacceptable. Instead, upgrades must happen gradually, and there may be long periods of time when different nodes run different software versions and need to communicate using incompatible protocols. We present a methodology and infrastructure that make it possible to upgrade distributed systems automatically while limiting service disruption. We introduce new ways to reason about correctness in a multi-version system. We also describe a prototype implementation that supports automatic upgrades with modest overhead.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ajmani, S.: Automatic Software Upgrades for Distributed Systems. Ph.D., MIT (September 2004), Also available as technical report MIT-LCS-TR-1012

    Google Scholar 

  2. Almeida, J.P.A., Wegdam, M., van Sinderen, M., Nieuwenhuis, L.: Transparent dynamic reconfiguration for CORBA (2001)

    Google Scholar 

  3. Amer-Yahia, S., Breche, P., Souza, C.: Object views and updates. Journes Bases de Donnes Avances (1996)

    Google Scholar 

  4. Bidan, C., Issarny, V., Saridakis, T., Zarras, A.: A dynamic reconfiguration service for CORBA. In: Intl. Conf. on Configurable Dist. Systems, May 1998 pp. 35–42 (1998)

    Google Scholar 

  5. Bloom, T.: Dynamic Module Replacement in a Distributed Programming System. PhD thesis, MIT (1983)

    Google Scholar 

  6. Boyapati, C., Liskov, B., Shrira, L., Moh, C.-H., Richman, S.: Lazy modular upgrades in persistent object stores. In: OOPSLA (2003)

    Google Scholar 

  7. Brewer, E.A.: Lessons from giant-scale services. IEEE Internet Computing (July 2001)

    Google Scholar 

  8. Callaghan, B., Pawlowski, B., Staubach, P.: NFS version 3 protocol specification. RFC 1813, Network Working Group (June 1995)

    Google Scholar 

  9. Dabek, F., Kaashoek, M.F., Karger, D., Morris, R., Stoica, I.: Wide-area cooperative storage with CFS. In: SOSP (October 2001)

    Google Scholar 

  10. Fabry, R.S.: How to design systems in which modules can be changed on the fly. In: Intl. Conf. on Software Engineering (1976)

    Google Scholar 

  11. Freedman, M.J., Freudenthal, E., Mazières, D.: Democratizing content publication with Coral. In: NSDI, San Francisco, CA (March 2004)

    Google Scholar 

  12. Frieder, O., Segal, M.E.: On dynamically updating a computer program: From concept to prototype. Journal of Systems and Software, 111–128 (1991)

    Google Scholar 

  13. Hicks, M.W., Moore, J.T., Nettles, S.: Dynamic software updating. Programming Language Design and Implementation, 13–23 (2001)

    Google Scholar 

  14. Hofmeister, C.R., Purtilo, J.M.: A framework for dynamic reconfiguration of distributed programs. Technical Report CS-TR-3119, University of Maryland, College Park (1993)

    Google Scholar 

  15. Kaminsky, M., Savvides, G., Mazières, D., Kaashoek, M.F.: Decentralized user authentication in a global file system. In: SOSP, October 2003, pp. 60–73 (2003)

    Google Scholar 

  16. Kapur, D.: Towards a theory for abstract data types. Technical Report MIT-LCS-TR-237, MIT (June 1980)

    Google Scholar 

  17. Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic change management. IEEE Transactions on Software Engineering 16(11), 1293–1306 (1990)

    Article  Google Scholar 

  18. Liskov, B., Castro, M., Shrira, L., Adya, A.: Providing persistent objects in distributed systems. In: European Conf. on Object-Oriented Programming (June 1999)

    Google Scholar 

  19. Liskov, B., Wing, J.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)

    Article  Google Scholar 

  20. Monk, S., Sommerville, I.: A model for versioning of classes in object-oriented databases. In: British National Conf. on Databases, Aberdeen, pp. 42–58 (1992)

    Google Scholar 

  21. Peterson, L., Culler, D., Anderson, T., Roscoe, T.: A blueprint for introducing disruptive technology into the Internet. In: HotNets I (October 2002)

    Google Scholar 

  22. Ritzau, T., Andersson, J.: Dynamic deployment of Java applications. In: Java for Embedded Systems Workshop, London (May 2000)

    Google Scholar 

  23. Salz, J., Snoeren, A.C., Balakrishnan, H.: TESLA: A transparent, extensible session-layer architecture for end-to-end network services. In: USITS (2003)

    Google Scholar 

  24. Senivongse, T.: Enabling flexible cross-version interoperability for distributed services. Distributed Objects and Applications (1999)

    Google Scholar 

  25. Skarra, A.H., Zdonik, S.B.: The management of changing types in an object-oriented database. In: OOPSLA, pp. 483–495 (1986)

    Google Scholar 

  26. Soules, C.A.N., Appavoo, J., Hui, K., Wisniewski, R.W., Silva, D.D., Ganger, G.R., Krieger, O., Stumm, M., Auslander, M., Ostrowski, M., Rosenburg, B., Xenidis, J.: System support for online reconfiguration. In: USENIX Annual Technical Conf. (2003)

    Google Scholar 

  27. Srinivasan, R.: RPC: Remote procedure call specification version 2. RFC 1831, Network Working Group (1995)

    Google Scholar 

  28. Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis mutandis: Safe and flexible dynamic software updating. Principles of Programming Languages (2005)

    Google Scholar 

  29. Tewksbury, L.A., Moser, L.E., Melliar-Smith, P.M.: Live upgrades of CORBA applications using object replication. In: ICSM, November 2001 pp. 488–497 (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ajmani, S., Liskov, B., Shrira, L. (2006). Modular Software Upgrades for Distributed Systems. In: Thomas, D. (eds) ECOOP 2006 – Object-Oriented Programming. ECOOP 2006. Lecture Notes in Computer Science, vol 4067. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11785477_26

Download citation

  • DOI: https://doi.org/10.1007/11785477_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35726-1

  • Online ISBN: 978-3-540-35727-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics