PJama(ID:6912/)


PJava


References:
  • Cutts, Q., Lennon, S., Hosking, A. "Reconciling buffer management with persistence optimisations" view details Abstract: The so-called 'read' and 'write' barriers present an obstacle to the efficient execution of persistent programs that use a volatile object buffer, non-volatile object store memory model. The barriers, implemented as checks added to the code, are required to ensure that objects are moved from store to buffer before being used and, if updated in the buffer, that they are written back on periodic checkpoints. Static read and write barrier optimisations are identified that require run-time guarantees on certain objects' remaining resident in the buffer. These objects are said to be 'pinned'. Object pinning conflicts with the buffer manager's freedom to evict objects from the buffer when it is full (cf. page replacement in a paging mechanism). A contract between the buffer manager and the code optimiser guarantees a minimum level of pinning for each thread. Beyond this guarantee, heuristics added to the buffer manager allow adjustment of the level of pinning for each thread according to the prevailing collection and individual states of threads, to minimise pinning vs object management conflicts. Optimisation of the write barrier additionally requires the buffer manager to uphold certain guarantees across checkpoint operations. This paper presents the design of buffer management mechanisms to uphold the pinning and update guarantees and identifies the heuristics used to adjust the pinning level. Details of the mechanisms' implementation in the PJama system are given. Measurements show that the additional functionality does not represent a significant overhead to the operation of the system, when running OO7 and some other compute and data intensive benchmarks.
          in POS8 Eighth International Workshop on Persistent Object Systems: Design, Implementation and Use Tiburon, California, USA 30th August - 1st September 1998 view details
  • Graham Kirby and Ron Morrison "Variadic Genericity Through Linguistic Reflection: A Performance Assessment" view details
          in POS8 Eighth International Workshop on Persistent Object Systems: Design, Implementation and Use Tiburon, California, USA 30th August - 1st September 1998 view details
  • S. Tjasink and S. Berman "Providing Persistence for Very Small Machines" view details Abstract: The aim of our research is to investigate the feasibility of running an orthogonally persistent Java on a "small" machine; a platform with limited memory and possibly not even having access to a local disk. This implementation is designed to interface with the PJSL store being developed for the PJama project. The paper discusses the modification of a lightweight Java Virtual Machine (JVM) in order to provide persistence. It highlights strategies devised for memory management, object faulting and update tracking in order to minimise the amount of main memory used. It is possible to configure the machine by selecting strategies for each of these mechanisms; in this way the performance of different combinations can be compared. The alternatives implemented include a scheme whereby transient objects are swopped out to the persistent store in order to make sufficient memory available. Applications such as Generalised Search Tree (GiST) indexing of large data collections have been run on the machine, and the performance of different machine configurations has been measured. The paper gives a brief description of the original lightweight JVM before showing how persistence mechanisms were incorporated. We conclude with some results from our ongoing evaluation of alternative configurations.

          in POS8 Eighth International Workshop on Persistent Object Systems: Design, Implementation and Use Tiburon, California, USA 30th August - 1st September 1998 view details
  • Hunt, Ela "PJama Stores and Suffix Tree Indexing for Bioinformatics Applications" view details
          in POS8 Eighth International Workshop on Persistent Object Systems: Design, Implementation and Use Tiburon, California, USA 30th August - 1st September 1998 view details
    Resources
    • PJama home page
      PJama is an experimental prototype that implements Orthogonal Persistence for the Java platform (OPJ), which is an approach to making application objects persist between program executions with the minimum possible effort required from the application programs themselves.

      OPJ and PJama are the result of collaborative research between the Forest Project at SunLabs and the Persistence and Distribution research group in the Department of Computing Science at the University of Glasgow, Scotland.
      external link