{"id":{"repo_id":"cape-town","oai_identifier":"oai:open.uct.ac.za:11427/42872"},"canonical_url":"https://search.dev.ndltd.org/etd/cape-town/oai:open.uct.ac.za:11427/42872","repository":{"repo_id":"cape-town","name":"University of Cape Town","base_url":"https://open.uct.ac.za/oai/request"},"display":{"title":"Plava: a persistent, lightweight Java [TM] virtual machine","abstract":"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.","abstract_html":"This thesis investigates the feasibility of running an orthogonally persistent version of Java [TM] on a &quot;small&quot; 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.","abstract_has_math":false,"creators":["Tjasink, Stephen Jeremy"],"institution":"Department of Computer Science","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":[],"advisors":["Berman, Sandra"],"committee_chairs":[],"committee_members":[],"year":1999,"date_issued":"1999","date_published":"1999","updated_at":"2026-07-22T22:23:22Z","subjects":["Computer Science"],"languages":["en"],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/11427/42872","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Berman, Sandra"]},{"key":"dc:creator","label":"Author","values":["Tjasink, Stephen Jeremy"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2026-02-20T09:22:14Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2026-02-20T09:22:14Z"]},{"key":"dc:date.issued","label":"Date","values":["1999"]},{"key":"dc:publisher.department","label":"Dc Publisher Department","values":["Department of Computer Science"]},{"key":"dc:publisher.institution","label":"Dc Publisher Institution","values":["University of Cape Town"]},{"key":"dc:type","label":"Dc Type","values":["Thesis / Dissertation"]},{"key":"dc:type.qualificationlevel","label":"Dc Type Qualificationlevel","values":["Masters","MSc"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["en"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/11427/42872"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["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."]},{"key":"dc:title","label":"Title","values":["Plava: a persistent, lightweight Java [TM] virtual machine"]}]}],"canonical_facts":{"dc:contributor.advisor":["Berman, Sandra"],"dc:creator":["Tjasink, Stephen Jeremy"],"dc:date.accessioned":["2026-02-20T09:22:14Z"],"dc:date.available":["2026-02-20T09:22:14Z"],"dc:date.issued":["1999"],"dc:description.abstract":["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."],"dc:identifier.uri":["http://hdl.handle.net/11427/42872"],"dc:language.iso":["en"],"dc:publisher.department":["Department of Computer Science"],"dc:publisher.institution":["University of Cape Town"],"dc:subject":["Computer Science"],"dc:title":["Plava: a persistent, lightweight Java [TM] virtual machine"],"dc:type":["Thesis / Dissertation"],"dc:type.qualificationlevel":["Masters","MSc"]},"updated_at":"2026-07-22T22:23:22Z"}