Plava: a persistent, lightweight Java [TM] virtual machine - Tjasink, Stephen Jeremy (Department of Computer Science, 2026)
This thesis investigates the feasibility of running an orthogonally persistent version of Java [TM] on a "small" machine with limited memory available. Other orthogonally persistent implementations do exist but these are targetted at large data sets and powerful machines. The modification of an existing lightweight Java Virtual Machine (JVM) in order to provide persistence is discussed. It highlights decisions that were made in the areas of memory management, object faulting and update tracking in order to implement these facilities efficiently without using undue amounts of memory. Also discussed are the problems of caching and of swapping reachable objects to the persistent store in order to make more memory available. It is possible to configure the machine to use different strategies for each of these mechanisms so that comparisions can be made. The machine is able to interface with P JSL, the persistent store being developed for PJama. Applications such as Generalised Search Tree (GiST) indexing of data collections have been run on the machine, as well as traversals from the OO7 benchmark suite. The performance of different machine configurations has been measured.