Abstract
A stable heap is storage that is managed automatically using garbage collection, manipulated using atomic transactions, and accessed using a uniform storage model. These features enhance reliability and simplify programming by preventing errors due to explicit deallocation, by masking failures and concurrency using transactions, and by eliminating the distinction between accessing temporary storage and permanent storage. Stable heap management is useful for programming languages for reliable distributed computing, programming languages with persistent storage, and object-oriented database systems.
In a stable heap, some programmer specified roots are stable; the rest are volatile. An object becomes stable when it becomes reachable from a stable root. A recovery system ensures that the stable objects survive failures. Many objects are volatile (e.g., objects local to a procedure invocation) and do not need to persist across failures. We would like to avoid recovery costs for these volatile objects, incurring the costs of recovery only for stable objects. To this end, the recovery system uses a tracking algorithm to find objects as they become stable and ensure that they survive failure. This paper presents a concurrent tracking algorithm: tracking runs concurrently with transactions and other trackers.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Albano, L. Cardelli, and R. Orsini. A Strongly Typed Interactive Conceptual Language. ACM Transactions on Database Systems,10(2):230–260, June 1985.
M. P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Morrison. An Approach to Persistent Programming. The Computer Journal, 26 (4): 360–365, 1983.
Alfred Brown and John Rosenberg. Persistent Object Stores: An Implementation Technique. In Alan Dearle, Gail M. Shaw, and Stanley B. Zdonik, editors, Implementing Persistent Object Bases: Principles and Practice/ The Fourth International Workshop on Persistent Object Systems, pages 199–212. Morgan-Kaufmann Publishers, San Mateo, California, 1990.
M. Carey, D. DeWitt, J. Richardson, and E. Sheikta. Object and File Management in the EXODUS Extensible Database System. In Proceedings of the 12th International Conference on Very Large Databases, August 1986.
W. P. Cockshott, M. P. Atkinson, K. J. Chisholm, P. J. Bailey, and R. Morrison. Persistent Object Management System. Software-Practice and Experience, 14: 49–71, 1984.
David Detlefs, Maurice Herlihy, and Jeannette Wing. Inheritance of Synchronization and Recovery Properties in Avalon/C++. IEEE Computer, 21 (12), December 1988.
James N. Gray. Notes on Database Operating Systems. In R. Bayer, R. M. Graham, and G. Seegmuller, editors, Operating Systems-An Advanced Course, volume 60 of Lecture Notes in Computer Science, pages 393–481. Springer-Verlag, New York, 1978.
Elliot Kolodner. Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap. In Alan Dearle, Gail M. Shaw, and Stanley B. Zdonik, editors, Implementing Persistent Object Bases: Principles and Practice/ The Fourth International Workshop on Persistent Object Systems, pages 185–198. Morgan-Kaufmann Publishers, San Mateo, California, 1990.
Elliot Kolodner, Barbara Liskov, and William Weihl. Atomic Garbage Collection: Managing a Stable Heap. In Proceedings of the 1989 ACM SIGMOD International Conference on the Management of Data, pages 15–25, June 1989.
Elliot K. Kolodner. Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap. Technical Report MIT/LCS/TR-534, Laboratory for Computer Science, MIT, Cambridge, Ma., February 1992.
Butler. W. Lampson. Atomic Transactions, volume 105 of Lecture Notes in Computer Science, pages 246–265. Springer-Verlag, New York, 1981. This is a revised version of Lampson and Sturgis’s unpublished Crash Recovery in a Distributed Data Storage System.
Barbara Liskov. Overview of the Argus Language and System. Programming Methodology Group Memo 40, Laboratory for Computer Science, MIT, Cambridge, Ma., February 1984.
Barbara Liskov, Paul Johnson, and Robert Scheifler. Implementation of Argus. In Proceedings of the Eleventh Symposium on Operating Systems Principles, November 1987.
David Maier, Jacob Stein, Allen Otis, and Alan Purdy. Development of an Object-Oriented DBMS. In Proceedings of the Object-Oriented Programming Systems, Languages and Applications, pages 472–482, November 1986.
C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh, and P. Schwarz. A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging. Technical Report R16649, IBM Almaden Research Center, San Jose, Ca., January 1989.
Brian Oki. Reliable Object Storage to Support Atomic Actions. Technical Report MIT/LCS/TR-308, Laboratory for Computer Science, MIT, Cambridge, Ma., May 1983.
Brian Oki, Barbara Liskov, and Robert Scheifler. Reliable Object Storage to Support Atomic Actions. In Proceedings of the Tenth Symposium on Operating Systems Principles, pages 147–159, December 1985.
Satish M. Thatte. Persistent Memory: A Storage Architecture for Object-Oriented Database Systems. In U. Dayal and K. Dittrich, editors, Proceedings of the International Workshop on Object-Oriented Databases, Pacific Grove, CA, September 1986.
William Weihl and Barbara Liskov. Implementation of Resilient, Atomic Data Types. ACM Transactions on Programming Languages and Systems, 7(2): 244–269, April 1985.
Daniel Weinreb, Neal Feinberg, Dan Gerson, and Charles Lamb. An Object-Oriented Database System to Support an Integrated Programming Environment. Submitted for publication, 1988.
Stanley Zdonik and Peter Wegner. Language and Methodology for Object-Oriented Database Environments. In Proceedings of the 19th Annual Hawaiian Conference on Systems Science, January 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1993 British Computer Society
About this paper
Cite this paper
Kolodner, E.K. (1993). Concurrent Tracking of Stable Objects. In: Albano, A., Morrison, R. (eds) Persistent Object Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3209-7_24
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3209-7_24
Publisher Name: Springer, London
Print ISBN: 978-3-540-19800-0
Online ISBN: 978-1-4471-3209-7
eBook Packages: Springer Book Archive