Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/320384.320427acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

Mostly-copying reachability-based orthogonal persistence

Published: 01 October 1999 Publication History

Abstract

We describe how reachability-based orthogonal persistence can be supported even in uncooperative implementations of languages such as C++ and Modula-3, and without modification to the compiler. Our scheme extends Bartlett's mostly-copying garbage collector to manage both transient objects and resident persistent objects, and to compute the reachability closure necessary for stabilization of the persistent heap. It has been implemented in our prototype of reachability-based persistence for Modula-3, yielding performance competitive with that of comparable, but non-orthogonal, persistent variants of C++. Experimental results, using the 007 object database benchmarks, reveal that the mostly-copying approach offers a straightforward path to efficient orthogonal persistence in these uncooperative environments. The results also characterize the performance of persistence implementations based on virtual memory protection primitives.

References

[1]
AGRAWAL, R., AND GEHANI, N. H. ODE (Object Database and Environment): The language and the data model. In Proceedings of the ACM International Conference on Management of Data (Portland, Oregon, May). ACM SIGMOD Record 18, 2 (June 1989), pp. 36--45.
[2]
AGRAWAL, R., AND GEHANI, N. H. Rationale for the design of persistence and query processing facilities in the database language O++. In Hull et al. {49}, pp. 25-40.
[3]
ALAGI(~, S. The ODMG object model: does it make sense? In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (Atlanta, Georgia, Oct.). ACM SIGPLAN Notices 32, 10 (Oct. 1997), pp. 253-270.
[4]
APPEL, A. W., AND Li, K. Virtual memory primitives for user programs. In Proceedings of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (Santa Clara, California, Apr.). ACM SIGPLAN Notices 26, 4 (Apr. 1991 ), pp. 96-107.
[5]
ATKINSON, M., CHISOLM, K., AND COCKSHOTT, P. PS-AlgoI: an Algol with a persistent heap. ACM SIGPLAN Notices 17, 7 (July 1982), 24-31.
[6]
ATKINSON, M. P., BAILEY, P. J., CHISHOLM, K. J., COCKSHOTT, P. W., AND MORRISON, R. An approach to persistent programming. The Computer Journal 26, 4 (Nov. 1983), 360-365.
[7]
ATKINSON, M. P., AND BONEMAN, O. P. Types and persistence in database programming languages. ACM Comput. Surv. 19, 2 (June t 987), 105-190.
[8]
ATKINSON, M. e., CHISHOLM, K. J., COCKSHOTT, W. P., AND MARSHALL, R. M. Algorithms for a persistent heap. Software: Practice and Experience 13, 7 (Mar. 1983), 259-271.
[9]
ATKINSON, M. P., DAYNI~S, L., JORDAN, M. J., PRINTEZIS, T., AND SPENCE, S. An orthogonally persistent Java. ACM SIGMOD Record 25, 4 (Dec. 1996), 68-75.
[10]
ATKINSON, M. P., JORDAN, M. J., DAYNES, L., AND SPENCE, S. Design issues for persistent Java: A type-safe object-oriented, orthogonally persistent system. In Connor and Nettles {27}, pp. 33-47.
[11]
ATKINSON, M. P., AND MORRISON, R. Orthogonally persistent object systems. International Journal on Very Large Data Bases 4, 3 (1995), 319-401.
[12]
BARTLETT, J. F. Compacting garbage collection with ambiguous roots. Research Report 8812, Western Research Laboratory, Digital Equipment Corporation, Feb. 1988.
[13]
BARTLETT, J. F. Mostly-copying garbage collection picks up generations and C++. Technical Note TN-12, Western Research Laboratory, Digital Equipment Corporation, Oct. 1989.
[14]
BAUMANN, R. Client/server distribution in a structure-oriented database management system. Tech. Rep. AIB 97-14, RWTH Aachen, Germany, 1997.
[15]
B OEHM, H.-J. Space efficient conservative garbage collection. In Proceedings of the ACM Conference on Programming Language Design and Implementation (Albuquerque, New Mexico, June). ACM SIGPLAN Notices 28, 6 (June 1993), pp. 197-206.
[16]
BOEHM, H.-J., AND WEISER, i. Garbage collection in an uncooperative environment. Software: Practice and Experience 18, 9 (Sept. 1988), 807-820.
[17]
BRAHNMATH, K., NYSTROM, N., HOSKING, A. L., AND CUTTS, Q. Swizzle barrier optimizations for orthogonal persistence in Java. In Morrison et al. {62}, pp. 268-278.
[18]
BRAHNMATH, K. J. Optimizing orthogonal persistence for Java. Master's thesis, Purdue University, May 199g.
[19]
CARDELLI, L., DONAI-tUE, J., GLASSMAN, L., JORDAN, M., KALSOW, B., AND NELSON, G. Modula-3 language definition, in Systems Programming with Modula-3, G. Nelson, Ed. Prentice Hall, 1991, ch. 2, pp. 11-66.
[20]
CAREY, M. J., DEWITT, D. J., FRANKLIN, M. J., HALL, N. E., MCAULIFFE, M. L., NAUGHTON, J. E., SCHUH, D. T., SOLOMON, M. H., TAN, C. K., TSATALOS, O. G., WHITE, S. J., AND ZWILLING, M. J. Shoring up persistent applications. In SIGMOD {74}, pp. 383-394.
[21]
CAREY, M. J., DEWITT, D. J., AND NAUGHTON, J. F. The OO7 benchmark. In Proceedings of the ACM International Conference on Management of Data (Washington, DC, May). ACM SIGMOD Record 22, 2 (June 1993), pp. 12-21,
[22]
EARLY, M. J., FRANKLIN, M. J., AND ZAHARIOUDAKIS, M. Fine-grained sharing in a page server OODBMS. In SIGMOD {74}, pp. 359-370.
[23]
CATTELL, R, (3. G., BARRY, D., BARTELS, D., BERLER, M., EASTMAN, J., GAMERMAN, S., JORDAN, D., SPRINGER, A., STRICKLAND, H., AND WADE, D., Eds. The Object Database Standard: ODMG 2.0. Morgan Kaufmann, 1997.
[24]
CHASE, J. S., LEVY, H. M., FEELEY, M. J., AND LAZOWSKA, E. D. Sharing and protection in a single-address space operating system. ACM Trans. Comput. Syst. 12, 4 (Nov. 1994), 271-307.
[25]
CHASE, J, S., LEVY, H. M., LAZOWSKA, E. D., AND BAKER-HARVEY, M. Lightweight shared objects in a 64-bit operating system. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (Vancouver, Canada, Oct.). ACM SIGPLAN Notices 27, 10 (Oct. 1992), pp. 397--413.
[26]
CHENEY, C. J. A nonrecursive list compacting algorithm. Commun. ACM 13, 11 (Nov. 1970), 677-678.
[27]
CONNOR, R., AND NETTLES, S., Eds. Proceedings of the Seventh International Workshop on Persistent Object Systems (Cape May, New Jersey, May 1996). Persistent Object Systems: Principles and Practice, Morgan Kaufmann, 1997.
[28]
DEARLE, A., CONNER, R., BROWN, F., AND MORRISON, R. Napier88 - a database programming language? In Hull et al. {49}, pp. 179-195.
[29]
DEARLE, A., D1 BONA, R., FARROW, J., HENSKENS, F., LINDSTROM, A., ROSENBERG, J., AND VAUGHAN, F. Grasshopper: An orthogonally persistent operating system. Computer Systems 7, 3 (Summer 1994), 289-312.
[30]
DEARLE, A., SHAW, G. M., AND ZDONIK, S. B., Eds. Proceedings of the Fourth International Workshop on Persistent Object Systems (Martha's Vineyard, Massachusetts, Sept. 1990). Implementing Persistent Object Bases: Principles and Practice, Morgan Kaufmann, 1991.
[31]
DETLEFS, D. D., HERLIHY, M. P., AND WING, J. M. Inheritance of synchronization and recovery in Avalon/C++. IEEE Computer 21, 12 (Dec. 1988), 57--69.
[32]
DETREVILLE, J. Experience with concurrent garbage collectors for Modula-2+. Tech. Rep. 64, Systems Research Center, Digital Equipment Corporation, Palo Alto, CA, Aug. 1990.
[33]
DIWAN, A., MOSS, J. E. B., AND HUDSON, R. L. Compiler support for garbage collection in a statically typed language. In Proceedings of the ACM Conference on Programming Language Design and Implementation (San Francisco, California, June). ACM SIGPLAN Notices 27, 7 (July 1992), pp. 273-282.
[34]
ELPHINSTONE, K., RUSSELL, S., HEISER, G., AND LIEDTKE, J. Supporting persistent object systems in a single address space. In Connor and Nettles {27}, pp. 111-119.
[35]
FENICHEL, R. R., AND YOCHELSON, J. C. A LISP garbage-collector for virtual-memory computer systems. Commun. ACM 12, 11 (Nov. 1969), 611-612.
[36]
HAINES, N., KINDRED, D., MORRISETT, J. G., NETTLES, S. M., AND WING, J. M. Composing first-class transactions. ACM Trans. Program. Lang. Syst. 16, 6 (Nov. 1994), 1719-1736.
[37]
HEISER, G., ELPHINSTONE, K., VOCHTELOO, J., RUSSELL, S., AND LIEDTKE, J. The Mungi single-address-space operating system. Software: Practice and Experience 28, 9 (July 1998), 901-928.
[38]
HOSKING, A. L. Lightweight Support for Fine-Grained Persistence on Stock Hardware. PhD thesis, University of Massachusetts at Amherst, Feb. 1995. Available as Computer Science Technical Report 95-02.
[39]
HOSKING, A. L. Residency check elimination for object-oriented persistent languages. In Connor and Nettles {27}, pp. 174-183.
[40]
HOSKING, A. L., BROWN, E., AND MOSS, J. E. B. Update logging for persistent programming languages: A comparative performance evaluation. In Proceedings of the international Conference on Very Large Data Bases (Dublin, Ireland, Aug.). Morgan Kaufmann, 1993, pp. 429--440.
[41]
HOSKING, A. L., AND CHEN, J. PM3: An orthogonally persistent systems programming language- design implementation, performance. In Proceedings of the International Conference on Very Large Data Bases (Edinburgh, Scotland, Sept.). Morgan Kaufmann, 1999.
[42]
HOSKING, A. L., AND MOSS, J. E. B. Compiler support for persistent programming. Tech. Rep. 91-25, Department of Computer Science, University of Massachusetts at Amherst, Mar. 199 I.
[43]
HOSKING, A. L, AND MOSS, J. E. B. Towards compile-time optimisations for persistence. In Dearie et al. {30}, pp. 17-27.
[44]
HOSKING, A. L., AND MOSS, J. E. B. Object fault handling for persistent programming languages: A performance evaluation. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (Washington, DC, Sept.). ACM SIGPLAN Notices 28, 10 (Oct. 1993), pp. 288-303.
[45]
HOSKING, A. L., AND MOSS, J. E. B. Protection traps and alternatives for memory management of an object-oriented language. In Proceedings of the ACM Symposium on Operating Systems Principles (Asheville, North Carolina, Dec.). ACM Operating Systems Review 27, 5 (Dec. 1993), pp. 106-119.
[46]
HOSKING, A. L., AND MOSS, J. E. B. Lightweight write detection and checkpointing for fine-grained persistence. Tech. Rep. 95-084, Department of Computer Sciences, Purdue University, Dec. 1995.
[47]
HOSKING, A. L., AND NOVIANTO, A. P. Reachability-based orthogonal persistence for C, C++ and other intransigents. In Proceedings of the OOPSLA Workshop on Memory Management and Garbage Collection (Atlanta, Georgia, Oct.). 1997. http://www.dcs.gla.ac.uk/'huw/oopsla97/gc/papers.html.
[48]
HOSKING, A. L., NYSTROM, N., CLITTS, Q., AND BRAHNMATH, K. Optimizing the read and write bamers for orthogonal persistence. In Proceedings of the Eighth International Workshop on Persistent Object Systems (Tiburon, California, August 1998), R. Morrison, M. Jordan, and M. Atkinson, Eds. Advances in Persistent Object Systems. Morgan Kaufmann, 1999, pp. 149-159.
[49]
HULL, R., MORRISON, R., AND STEMPLE, D., Eds. Proceedings of the Second International Workshop on Database Programming Languages (Salishan Lodge, Gleneden Beach, O~egon, June 1989). Morgan Kaufmann, 1990.
[50]
Proceedings of the ACM International Symposium on Memory Management (Vancouver, Canada, Oct., 1998). ACM SIGPLAN Notices 34, 3 (Mar. 1999).
[51]
JONES, R. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, May 1996. With a chapter by R. Lins.
[52]
JORDAN, M. Early experiences with persistent Java. In Proceedings of the First International Workshop on Persistence and Java (Drymen, Scotland, Sept.), M. P. Atkinson and M. J. Jordan, Eds. Sun Microsystems Laboratories Technical Report 96-58, Nov. 1996.
[53]
JORDAN, M., AND ATKINSON, M. Orthogonal persistence for Java - a mid-term report. In Morrison et al. {62}.
[54]
KAEHLER, T. Virtual memory on a narrow machine for an object-oriented language. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applicarions (Portland, Oregon, Sept.). ACM SIGPLAN Notices 21, 11 (Nov. 1986), pp. 87-106.
[55]
KAEHL}~R, T., AND KRASNER, G. LOOM-large object-oriented memory for Smalltalk-80 systems. In SmaUtalk-80: Bits of History, Words ofAdvice, G. Krasner, Ed. Addison-Wesley, 1983, ch. 14, pp. 251--270.
[56]
KAKKAD, S. V., JOHNSTONE, M. S., AND WILSON, P. R. Portable run-time type description for conventional compilers. In ISMM {50}, pp. 146-.153.
[57]
KIESEL. N., SCHORR, A., AND WESTFECHTEL, B. GRAS, a graph-oriented (software) engineering database system. Information Systems 20, 1 (1995), 21-52.
[58]
LAMB, C., LANDIS, G., ORENSTEIN, J., AND WEINREB, D. The ObjectStore database system. Commun. ACM 34, 10 (Oct. 1991), 50-63.
[59]
LIM, T. F., PARDYAK, P., AND BERSHAD, B. N. A memory-efficient real-time non-copying garbage collector. In ISMM {50}, pp. 118-129.
[60]
MATTHES, F., AND SCHMIDT, J. W. Persistent threads. In Proceedings of the International Conference on Very Large Data Bases (Santiago, Chile, Sept.). Morgan Kaufmann, 1994, pp. 403-414.
[61]
MORRISON, R., BROWN, A., CARRICK, R., CONNOR, R., DEARLE, A., AND ATKINSON, M. P. The Napier type system. In Proceedings of the Third International Workshop on Persistent Object Systems (Newcastle, New South Wales, Australia, Jan. 1989), J. Rosenberg and D. Koch, Eds. Workshops in Computing. Springer-Veflag, 1990, pp. 3-18.
[62]
MORRISON, R., JORDAN, M., AND ATKINSON, M., Eds. Proceedings of the Third International Workshop on Persistence and Java (Tiburon, California, August 1998). Advances in Persistent Object Systems, Morgan Kaufmann, 1999.
[63]
Moss, J. E. B. Working with persistent objects: To swizzle or not to swizzle. IEEE Trans. Softw. Eng. 18, 8 (Aug. 1992), 657-673.
[64]
MOSS, J. E. B., AND HOSKING, A. L. Expressing object residency optimizations using pointer type annotations. In Proceedings of the Sixth International Workshop on Persistent Object Systems (Tarascon, France, Sept. 1994), M. Atkinson, D. Maier, and V. Benzaken, Eds. Workshops in Computing. Springer-Vedag, 1995, pp. 3-15.
[65]
NYSTROM, N., HOSKING, A. L., WHITLOCK, D., CUTTS, Q., AND DIWAN, A. Partial redundancy elimination for access path expressions. Tech. Rep. 98-044, Department of Computer Sciences, Purdue University, Oct. 1998. Submitted for publication.
[66]
NYSTROM, N. J. Bytecode level analysis and optimization of Java classes. Master's thesis, Purdue University, Aug. 1998.
[67]
RICHARDSON, J. E. Compiled item faulting: A new technique for managing I/O in a persistent language. In Dearie et al. {30}, pp. 3-16.
[68]
RICHARDSON, J. E., AND CAREY, M. J. Programming constructs for database implementations in EXODUS. In Proceedings of the ACM International Conference on Management of Data (San Francisco, California, May). ACM SIGMOD Record 16, 3 (Dec. 1987), pp. 208-219.
[69]
RICHARDSON, J. E., AND CAREY, M. j. Persistence in the E language: Issues and implementation. Software: Practice and Experience 19, 12 (Dec. 1990), 1115-1150.
[70]
RICHARDSON, J. E., CAREY, M. J., AND SCHUH, D. T. The design of the E programming language. ACM Trans. Program. Lang. Syst. 15, 3 (July 1993), 494-534.
[71]
ROSENBERG, J., DEARLE, A., HULSE, D., LINDSTROM, A., AND NORRIS, S. Operating system support for persistent and recoverable computations. Commun. ACM 39, 9 (Sept. 1996), 62-=69.
[72]
SCHKOLNICK, M. A clustering algorithm for hierarchical structures. ACM Trans, Database Syst. 2, I (Mar. 1977), 27-44.
[73]
SCHUH, D., CAREY, M., AND Dt~WITT, D. Persistence in E revisited - implementation experiences. In Dearie et al. {30}, pp. 345-359.
[74]
Proceedings of the ACM International Conference on Management of Data (Minneapolis, Minnesota, May). ACM SIGMOD Record 23, 2 (June 1994).
[75]
SINGHAL, V., KAKKAD, S. V., AND WILSON, P. R. Texas, an efficient, portable persistent store, in Proceedings of the Fifth International Workshop on Persistent Object Systems (San Miniato, Italy, Sept.), A. Albano and R. Morrison, Eds. Workshops in Computing. Springer-Verlag, 1992, pp. 11-33.
[76]
STAMOS, J, W. Static grouping of small objects to enhance performance of a paged virtual memory. ACM Trans. Database gyst. 2, 2 (May 1984), 155-180.
[77]
STRAW, A., MELLENDER, F., AND RIEGEL, S. Object management in a persistent SmaUtalk system. Software: Practice and Experience 19, 8 (Aug. 1989), 719-737.
[78]
WENTWORTH, E. P. Pitfalls of conservative garbage collection. Software: Practice and Experience 20, 7 (July 1990).
[79]
WHITE, S. J., AND DEWtTT, D. J. QuickStore: A high performance mapped object store. In SIGMOD {74}, pp. 395,-406.
[80]
WILSON, P. R. Uniprocessor garbage collection techniques. ACM Comput. Surv. To appear.
[81]
WILSON, P. R. Uniprocessor garbage collection techniques. In Proceedings of the International Workshop on Memory Management (St. Malt, France, Sept.), Y. Bekkers and J. Cohen, Eds. No. 637 in Lecture Notes in Computer Science. Springer-Verlag, 1992.
[82]
WILSON, P. R., AND KAKKAD, S. V. Pointer swizzling at page fault time: Efficiently and compatibly supporting huge address spaces on standard hardware. In Proceedings of the 1992 international Workshop on Object Orientation in Operating Systems (Paris, France, Sept.). IEEE Computer Society, 1992, pp. 364-377.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 1999
462 pages
ISBN:1581132387
DOI:10.1145/320384
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1999

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA99
Sponsor:

Acceptance Rates

OOPSLA '99 Paper Acceptance Rate 30 of 152 submissions, 20%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)32
  • Downloads (Last 6 weeks)9
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Object-oriented recovery for non-volatile memoryProceedings of the ACM on Programming Languages10.1145/32765232:OOPSLA(1-22)Online publication date: 24-Oct-2018
  • (2016)Makalu: fast recoverable allocation of non-volatile memoryACM SIGPLAN Notices10.1145/3022671.298401951:10(677-694)Online publication date: 19-Oct-2016
  • (2016)Managing persistent heap in NVRAMProceedings of the 1st International Workshop on Mobile Development10.1145/3001854.3001861(6-8)Online publication date: 21-Oct-2016
  • (2016)Makalu: fast recoverable allocation of non-volatile memoryProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2984019(677-694)Online publication date: 19-Oct-2016
  • (2013)ImagenProceedings of the 22nd international conference on World Wide Web10.1145/2488388.2488459(815-826)Online publication date: 13-May-2013
  • (2010)Automated object persistence for JavaScriptProceedings of the 19th international conference on World wide web10.1145/1772690.1772711(191-200)Online publication date: 26-Apr-2010
  • (2006)Semantics of persistence in the glib programming languageCompanion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications10.1145/1176617.1176653(645-646)Online publication date: 22-Oct-2006
  • (2006)An extensible mechanism for Long-Term Persistence of JavaBeans componentsProceedings of the 4th international symposium on Principles and practice of programming in Java10.1145/1168054.1168068(94-102)Online publication date: 30-Aug-2006
  • (1999)PM3Proceedings of the 25th International Conference on Very Large Data Bases10.5555/645925.671503(587-598)Online publication date: 7-Sep-1999
  • (1999)Mostly-copying reachability-based orthogonal persistenceACM SIGPLAN Notices10.1145/320385.32042734:10(382-398)Online publication date: 1-Oct-1999
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media