|
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.
Many applications that could benefit from a stable heap (e.g., computer-aided design, computer-aided software engineering, and office information systems) require large amounts of storage, timely responses for transactions, and high availability. We present garbage collection and recovery algorithms for a stable heap implementation that meet these goals and are appropriate for stock hardware. The collector is incremental: it does not attempt to collect the whole heap at once. The collector is also atomic: it is coordinated with the recovery system to prevent problems when it moves and modifies objects. The time for recovery is independent of heap size, even if a failure occurs during garbage collection.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
M.P. Atkinson, P. J. Bailey, K. J. Chisholm, P. W. Cockshott, and R. Motrison. An Approach to Persistent Programming. The Computer Journal, 26(4):360--365, 1983.
|
 |
3
|
|
| |
4
|
|
| |
5
|
P. B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. Technical Report MIT/LCS#-178, Laboratory for Computer Science, M1T, Cambridge, Ma., May 1977.
|
 |
6
|
Hans-J. Boehm , Alan J. Demers , Scott Shenker, Mostly parallel garbage collection, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.157-164, June 24-28, 1991, Toronto, Ontario, Canada
|
| |
7
|
A. Brown and J. Rosenberg. Persistent Object Stores: An Implementation Technique. In A. Dearie, G. M. Shaw, and S. B. Zdonik, editors, Implementing Persistent Object Bases: Principles and Practice. Proceedings of the Fourth International Workshop on Persistent Object Systems, pages 199--212. Morgan Kaufmann Publishers, San Mateo, Ca., 1990.
|
| |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
D. L. Detlefs. Concurrent, Atomic Garbage Collection. Technical Report CMU-CS-90-177, Department of Computer Science, Carnegie Mellon University, Pittsburgh, Pa., October 1990.
|
| |
12
|
J. R, Ellis, K. Li, and A. W. Appel. Real-time Concurrent Collection on Stock Multiprocessors. Technical Report 25, Systems Research Center, Digital Equipment Corporation, Palo Alto, Ca., February 1988.
|
| |
13
|
D. Gawlick and D. Kinkade. Varieties of Concurrency Control in IMS/VS Fast Path. Database Engineering, 8(2):63--70, June 1985.
|
| |
14
|
|
 |
15
|
|
| |
16
|
M. P. Herlihy and J. M. Wing. Avalon: Language Support for Reliable Distributed Systems. In Proceedings of the Seventeenth International Symposium on Fault-Tolerant Computing, July 1987.
|
| |
17
|
|
 |
18
|
|
| |
19
|
E. Kolodner. Atomic Incremental Garbage Collection and Recovery for a Large Stable Heap. In A. Dearie, G. M. Shaw, and S. B. Zdonik, editors, Implementing Persistent Object Bases: Principles and Practice. Proceedings of the Fourth International Workshop on Persistent Object Systems, pages 185--198. Morgan Kaufmann Publishers, San Mateo, Ca., 1990.
|
 |
20
|
|
| |
21
|
|
| |
22
|
E. 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.
|
| |
23
|
|
 |
24
|
|
| |
25
|
B. G. Lindsay, P. G. Selinger, C. Galtieri, J. N. Gray, R. A. Lode, T. G. Price, F. Putzolu, I. L. Traiger, and B. W. Wade. Notes on Distributed Databases. Technical Report RJ2571, IBM Research Laboratory, San Jose, Ca., July 1979.
|
 |
26
|
|
 |
27
|
B. Liskov , D. Curtis , P. Johnson , R. Scheifer, Implementation of Argus, Proceedings of the eleventh ACM Symposium on Operating systems principles, p.111-122, November 08-11, 1987, Austin, Texas, United States
|
 |
28
|
David Maier , Jacob Stein , Allen Otis , Alan Purdy, Development of an object-oriented DBMS, Conference proceedings on Object-oriented programming systems, languages and applications, p.472-482, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
29
|
|
 |
30
|
|
 |
31
|
|
| |
32
|
R. F. Rashid. Threads of a New System. Unix Review, 4(8):37--49, August 1986.
|
| |
33
|
M. Reinhold. Personal communication.
|
| |
34
|
|
 |
35
|
|
 |
36
|
|
 |
37
|
|
 |
38
|
|
 |
39
|
Paul R. Wilson , Michael S. Lam , Thomas G. Moher, Effective “static-graph” reorganization to improve locality in garbage-collected systems, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.177-191, June 24-28, 1991, Toronto, Ontario, Canada
|
| |
40
|
S. Zdonik and P. Wegner. Language and Methodology for Object-Oriented Database Environments. In Proceedings of the 19th Annual Hawaiian Conference on Systems Science, January 1986.
|
|