# To Cache or Not to Cache
## 5 Related Work
### Caches for CDNs  
In the context of Content Delivery Networks (CDNs) caching, a recent approach proposes a machine learning framework LFO (Learn from OPT) [33] to learn the best decision by running an OPT approximation [34] over recent requests. LFO extracts multiple features to later use them in the process of deciding whether to cache or not incoming requests. LFO learns with an OPT approximation to learn and mirror OPT's decisions, the result is expected to maximize the number of hits with the minimum number of writes. In practice, LFO achieves competitive performance, but incurs overhead to keep track of all the online features.  
As LFO learned from OPT for decision making within CDN caches, further research has focused on the application of [PERSON]'s MIN for such caches. The Belatelly algorithm [35] is one such algorithm that notes the lack of design consideration for recognizing the delay incurred when inserting an item into the cache, not only caching algorithms but also within [PERSON]'s MIN itself. Belatelly recognizes this along with the effect on latency imposed by this delay, especially when considering cache hits that must wait for the item to first enter the cache before returning. From [PERSON]'s insights, a method of evaluating items was implemented called Minimum-Aggregate Delay (MAD), which, when applied to existing algorithms, provided latency improvements like that found with Belatelly. Another is the Learning Relaxed Belady (LRB) algorithm [36], which approximates [PERSON]'s MIN by incorporating the concept of a Belady boundary to better have a machine learning caching prototype with limited memory overhead and lightweight training and predictions. Finally, machine learning techniques have been used to learn admission policies for CDNs. SLAP [37] uses a Long-Short-Term-Memory (LSTM) model and admits objects that will be reused (before eviction) given the current cache size. In contrast to these, **FOMO** focuses on caching for block storage workloads and using heuristics without the need to train any machine learning components to the algorithm to achieve its benefits with a lightweight design. Furthermore, **FOMO** aims for hits with a reduction on writes and as such does not consider the latency performance.  
AdaptSize [38] is a non-datapath caching algorithm that probabilistically determines whether to admit an item of a given size into the cache. The strength of AdapSize is how closely it performs compared to SIZE-OPT, an approximation of optimal from observing the next million requests. AdapSize was designed primarily for CDNs and workloads where objects of various sizes are encountered. Due to the nature of AdapSize to rank based on size and recency, when all items have the same size, then AdapSize will only operate on a recency basis. Furthermore, as its calculated optimal size admission parameter (\(c\)) is recalculated after a period as part of a probability calculation that decreases with object size. However, should all objects have the same size, then these objects will all have the same probability of admission during that period. Comparatively, **FOMO** recognizes that workload behavior can change within an evaluation period and prefers items with reuse rather than small items with recency, though without various sizes the benefits of AdapSize do not appear to be present.