Steven G. Lyons Jr.
Knight Foundation School of Computing and Information Sciences
Steven George Lyons, Jr. is a Ph.D. candidate at the Knight Foundation School of Computing and Information Sciences (KFSCIS), Florida International University (FIU), under the supervision of Professor Raju Rangaswami. He conducts research at the Systems Research Laboratory (SyLab). His research interest lies in storage systems and optimizations. He holds a BS degree in Computer Engineering and MS degree in Computer Science from Florida International University.
Conventionally, caching algorithms have been designed for the datapath — the levels of memory that data must contain the data before it gets made available to the CPU. Amongst the latest developments, attaching a fast device (such as an SSD) as a cache to a host that runs the application workload and thus creating host-side caches, opening up the possibilities for non-datapath caches to exist. Non-Datapath caches are called as such because the caches do not exist on the traditional datapath, instead being optional memory locations for data. Being optional, a new option is available to caching algorithms that manage these caches: not caching at all, and instead bypassing the cache entirely for an access. With the option to not cache, items may not get inserted into the cache, an outcome that is beneficial to the lifetime of cache devices that can only sustain a limited number of writes before they degrade and become unusable. We propose several different non-datapath caching algorithms that are optimized to make these choices and achieve high hit-rates while reducing writes: mARC, FOMO, and ANX. Along with these proposals, we propose a polynomial time optimal solution to non-datapath caches: mOPT. mOPT provides an optimal solution for non-datapath caches that can not only maximize hits while minimizing writes, but also can maximize hits while further minimizing writes by varying the cost of writes within its model. This provides further insight into how appropriate non-datapath caches are for specific workloads, if at all.