skip to main content
10.1145/949305.949341acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Lazy modular upgrades in persistent object stores

Authors Info & Claims
Published:26 October 2003Publication History

ABSTRACT

Persistent object stores require a way to automatically upgrade persistent objects, to change their code and storage representation. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space and time, and that does not stop application access to the store. In addition, however, the approach must be modular: it must allow programmers to reason locally about the correctness of their upgrades similar to the way they would reason about regular code. This paper provides solutions to both problems.The paper first defines upgrade modularity conditions that any upgrade system must satisfy to support local reasoning about upgrades. The paper then describes a new approach for executing upgrades efficiently while satisfying the upgrade modularity conditions. The approach exploits object encapsulation properties in a novel way. The paper also describes a prototype implementation and shows that our upgrade system imposes only a small overhead on application performance.

References

  1. A. Adya, R. Gruber, B. Liskov, and U. Maheshwari. Efficient optimistic concurrency control using loosely synchronized clocks. In ACM SIGMOD International Conference on Management of Data, May 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. O. Agesen, S. N. Freund, and J. C. Mitchell. Adding type parameterization to the Java language. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Aldrich, V. Kostadinov, and C. Chambers. Alias annotations for program understanding. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), November 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. P. Atkinson, F. Bancilhon, D. J. DeWitt, K. R. Dittrich, D. Maier, and S. B. Zdonik. The object-oriented database system manifesto. In SIGMOD Conference, May 1990.]]Google ScholarGoogle ScholarCross RefCross Ref
  5. M. P. Atkinson, M. A. Dmitriev, C. Hamilton, and T. Printezis. Scalable and recoverable implementation of object evolution for the PJama 1 platform. In Persistent Object Systems (POS), September 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. P. Atkinson, M. J. Jordan, L. Daynes, and S. Spence. Design issues for persistent Java: A type-safe, object-oriented, orthogonally persistent system. In Persistent Object Systems (POS), May 1996.]]Google ScholarGoogle Scholar
  7. J. Banerjee, W. Kim, H. Kim, and H. F. Korth. Semantics and implementation of schema evolution in object-oriented databases. In ACM SIGMOD International Conference on Management of Data, May 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Bertino, G. Guerrini, and L. Rusca. Object evolution in object databases. In B. Franhoefer and R. Pareschi, editors, Dynamic Worlds, Kluwer Academic Publishers, 1999.]]Google ScholarGoogle Scholar
  9. C. Boyapati. JPS: A distributed persistent Java system. SM thesis, Massachusetts Institute of Technology, September 1998.]]Google ScholarGoogle Scholar
  10. C. Boyapati, R. Lee, and M. Rinard. Safe runtime downcasts with ownership types. In ECOOP International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO), July 2003.]]Google ScholarGoogle Scholar
  11. C. Boyapati, R. Lee, and M. Rinard. Ownership types for safe programming: Preventing data races and deadlocks. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), November 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Boyapati, B. Liskov, and L. Shrira. Ownership types for object encapsulation. In Principles of Programming Languages (POPL), January 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C. Boyapati, B. Liskov, and L. Shrira. Ownership types and safe lazy upgrades in object-oriented databases. Technical Report TR-858, MIT Laboratory for Computer Science, July 2002.]]Google ScholarGoogle Scholar
  14. C. Boyapati and M. Rinard. A parameterized type system for race-free Java programs. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Boyapati, A. Salcianu, W. Beebee, Jr., and M. Rinard. Ownership types for safe region-based memory management in Real-Time Java. In Programming Language Design and Implementation (PLDI), June 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. Bracha, M. Odersky, D. Stoutamire, and P. Wadler. Making the future safe for the past: Adding genericity to the Java programming language. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Bretl et al. The GemStone data management system. In W. Kim and F. H. Lochovsky, editors, Object-Oriented Concepts, Databases, and Applications. 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. J. Carey, D. J. Dewitt, C. Kant, and J. F. Naughton. A status report on the OO7 OODBMS benchmarking effort. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Castro, A. Adya, B. Liskov, and A. C. Myers. HAC: Hybrid adaptive caching for distributed storage systems. In Symposium on Operating System Principles (SOSP), October 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Catell, editor. The Object Database Standard: ODMG 3.0. Morgan Kaufmann, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Y. Cheung. Lazy schema evolution in object-oriented databases. SM thesis, Massachusetts Institute of Technology, September 2001.]]Google ScholarGoogle Scholar
  22. S. M. Clamen. Type evolution and instance adaptation. Technical Report CMU-CS-92-133, Carnegie Mellon University, June 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. G. Clarke. Object ownership and containment. PhD thesis, University of New South Wales, Australia, July 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. G. Clarke and S. Drossopoulou. Ownership, encapsulation and disjointness of type and effect. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), November 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. G. Clarke, J. M. Potter, and J. Noble. Ownership types for flexible alias protection. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. V. M. Crestana-Jensen, A. J. Lee, and E. A. Rundensteiner. Consistent schema version removal: An optimization technique for object-oriented views. In IEEE Transactions on Knowledge and Data Engineering (TKDE) 12(2), March 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Day, R. Gruber, B. Liskov, and A. C. Myers. Subtypes vs. where clauses: Constraining parametric polymorphism. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Delcourt and R. Zicari. The design of an integrity consistency checker (ICC) for an object-oriented database system. In European Conference for Object-Oriented Programming (ECOOP), July 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. O. Deux et al. The story of O2. In IEEE Transactions on Knowledge and Data Engineering (TKDE) 2(1), March 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. A. Dmitriev. Safe class and data evolution in large and long-lived Java applications. Technical Report TR-2001-98, Sun Microsystems, August 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. Fickle : Dynamic object re-classification. In ECOOP, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Duggan. Type-based hot swapping of running modules. Technical Report SIT CS 2001-7, Stevens Institute of Technology, Hoboken, NJ 07030, October 2001.]]Google ScholarGoogle Scholar
  33. F. Ferrandina and G. Ferran. Schema and database evolution in the O2 Object Database System. In Proceedings of the 21st International Conference on Very Large Data Bases (VLDB), 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. F. Ferrandina, T. Meyer, and R. Zicari. Measuring the Performance of Immediate and Deferred Updates in Object Database Systems. In Proceedings of the OOPSLA Workshop on Object Database Behavior, Benchmarks and Performance, 1995.]]Google ScholarGoogle Scholar
  35. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. M. Hicks, J. Moore, and S. Nettles. Dynamic software updating. In Programming Language Design and Implementation (PLDI), June 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. G. Hjalmtysson and R. Gray. Dynamic C++ classes - a lightweight mechanism to update code in running program. In USENIX Annual Technical Conference, June 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. K. R. M. Leino and G. Nelson. Data abstraction and information hiding. Research Report 160, Compaq Systems Research Center, November 2000.]]Google ScholarGoogle Scholar
  39. K. R. M. Leino, A. Poetzsch-Heffter, and Y. Zhou. Using data groups to specify and check side effects. In Programming Language Design and Implementation (PLDI), June 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. B. S. Lerner and A. N. Habermann. Beyond schema evolution to database reorganization. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. B. Liskov, M. Castro, L. Shrira, and A. Adya. Providing persistent objects in distributed systems. In European Conference for Object-Oriented Programming (ECOOP), June 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. B. Liskov, C. Moh, S. Richman, L. Shrira, Y. Cheung, and C. Boyapati. Safe lazy software upgrades in object-oriented databases. Technical Report TR-851, MIT Laboratory for Computer Science, June 2002.]]Google ScholarGoogle Scholar
  43. B. Liskov, A. Snyder, R. R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. In Communications of the ACM (CACM) 20(8), August 1977.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. J. M. Lucassen and D. K. Gifford. Polymorphic effect systems. In Principles of Programming Languages (POPL), January 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. A. C. Myers, J. A. Bank, and B. Liskov. Parameterized types for Java. In Principles of Programming Languages (POPL), January 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Object Design Inc. ObjectStore Advanced C++ API User Guide Release 5.1, 1997.]]Google ScholarGoogle Scholar
  47. Objectivity Inc. Objectivity Technical Overview, Version 6.0, 2001.]]Google ScholarGoogle Scholar
  48. D. J. Penney and J. Stein. Class modification in the GemStone object-oriented DBMS. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. A. H. Skarra and S. B. Zdonik. The management of changing types in an object-oriented database. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), November 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Versant Object Technology. Versant User Manual, 1992.]]Google ScholarGoogle Scholar
  51. M. Viroli and A. Natali. Parametric polymorphism in Java: An approach to translation based on reflective features. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), October 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. R. Zicari. A framework for schema updates in an object-oriented database systems. In International Conference on Data Engineering (ICDE), April 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lazy modular upgrades in persistent object stores

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in
                  • Published in

                    cover image ACM Conferences
                    OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
                    October 2003
                    430 pages
                    ISBN:1581137125
                    DOI:10.1145/949305
                    • cover image ACM SIGPLAN Notices
                      ACM SIGPLAN Notices  Volume 38, Issue 11
                      Special Issue: Proceedings of the OOPSLA '03 conference
                      November 2003
                      417 pages
                      ISSN:0362-1340
                      EISSN:1558-1160
                      DOI:10.1145/949343
                      Issue’s Table of Contents

                    Copyright © 2003 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 26 October 2003

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • Article

                    Acceptance Rates

                    OOPSLA '03 Paper Acceptance Rate26of147submissions,18%Overall Acceptance Rate268of1,244submissions,22%

                    Upcoming Conference

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader