PM3: An Orthogonally Persistent Systems Programming Language

Hosking, Antony L. and Chen, Jiawan


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 non-orthogonal 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 non-orthogonal 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.

  author = {Hosking, Antony L. and Chen, Jiawan},
  title = {PM3: An Orthogonally Persistent Systems Programming
  booktitle = {International Conference on Very Large Data Bases},
  series = {VLDB},
  year = {1999},
  pages = {587--598},
  month = {September},
  address = {Edinburgh, Scotland},
  url = {},
  gscholar = {17}