PM3: An Orthogonally Persistent Systems Programming Language – Design, Implementation, Performance

Antony L. Hosking, Jiawan Chen

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

PM3 is an orthogonally persistent extension of the
Modula-3 systems programming language, supporting persistence by reachability from named
persistent roots. We describe the design and implementation of the PM3 prototype, and show
that its performance is competitive with its nonorthogonal counterparts by direct comparison
with the SHORE/C++ language binding to the
SHORE object store. Experimental results, using
the traversal portions of the OO7 benchmark, reveal that the overheads of orthogonal persistence
are not inherently more expensive than for nonorthogonal persistence, and justify our claim that
orthogonal persistence deserves a level of acceptance similar to that now emerging for automatic
memory management (i.e., “garbage collection”),
even in performance-conscious settings. The consequence will be safer and more flexible persistent
systems that do not compromise performance.
Original languageEnglish
Title of host publicationPM3: An Orthogonal Persistent Systems Programming Language—Design, Implementation, Performance
PublisherMorgan Kauffman Publishers
Pages587-598
ISBN (Print)1-55860-615-7
Publication statusPublished - 1999
Externally publishedYes
Event25th International Conference on Very Large Data Bases - Edinburgh, United Kingdom
Duration: 7 Sept 199910 Sept 1999
Conference number: 25th

Publication series

NameProceedings of the International Conference on Very Large Data Bases
PublisherMorgan Kauffmann

Conference

Conference25th International Conference on Very Large Data Bases
Abbreviated titleVLDB'99
Country/TerritoryUnited Kingdom
CityEdinburgh
Period7/09/9910/09/99

Fingerprint

Dive into the research topics of 'PM3: An Orthogonally Persistent Systems Programming Language – Design, Implementation, Performance'. Together they form a unique fingerprint.

Cite this