Date of Award
2020-01-01
Degree Name
Doctor of Philosophy
Department
Computer Science
Advisor(s)
Eric Freudenthal
Abstract
Software caches for garbage collected systems are unaware which cache entries are referenced by a client program. Lacking this key information, software caches cannot determine the cache’s contribution to the program’s memory footprint. Furthermore, their eviction heuristics must rely on access history as a proxy for usage. Divergence between usage and access history can undermine the intention of eviction thereby resulting in problematic cache behavior.
This dissertation proposes designs for a novel family of “usage-based” software cache informed of entry reachability by the automatic memory management system. Unlike extant software caches, usage-based caches can accurately determine their memory footprint because they are informed of memory usage. Usage-based software caches require information and controls that are not exposed by many garbage collected languages’ runtime systems including Java and Python. C#’s finalization interface is sufficient to construct a prototype implementation of a usage-based software cache called “FinalCache”.
Unfortunately, C#’s finalization interface creates high coupling between FinalCache and its entries. We are unaware of any language runtime systems that do not have this characteristic. These deficiencies and strategies for potentially remediating them are also described.
Language
en
Provenance
Received from ProQuest
Copyright Date
2020-08
File Size
92 pages
File Format
application/pdf
Rights Holder
Adrian Veliz
Recommended Citation
Veliz, Adrian, "Finalcache: Eviction Based On Implicit Entry Reachability" (2020). Open Access Theses & Dissertations. 3128.
https://scholarworks.utep.edu/open_etd/3128