Smart Caches

Content and service providers often rely on content distribution networks (CDNs) to serve their content and increase user QoE. CDNs achieve this by enabling service providers to cache content in servers located closer to end-users requesting them. In a nutshell, CDNs are essentially a geographically distributed group of caching servers (with storage resources) working together such that end-users are served with content from servers that are closest to them. At scale, CDNs not only help reduce the bandwidth load (thus cost-saving) on the network but also has widely shown to immensely improve application performance and end-users' QoE  -- especially for bandwidth hungry applications such as video streaming. However, CDNs face a number of challenges -- one of them is dealing with limited storage capacity at the caching servers. To handle this, CDNs employ "caching strategies" to ensure the storage resources are efficiently used. For instance, to increase byte-efficiency of the storage resources, proactively caching popularly requested objects becomes key. In other words, given a catalogue of content objects, one of the most difficult decisions is "what objects to cache/evict" and "when to cache/evict", given the limited capacity of the caches in the CDN and large number of objects to cache.  Most of the popular caching strategies are based on heuristics or analytical-based models. With the success of machine learning (ML) and deep learning (DL) in other domains such as computer vision and speech processing, we explore ways to understand the usage of ML and DL algorithms in the domain of content caching.

A Case using the DeepCache Framework
A case illustrating the use of the DeepCache Framework

We proposed the DeepCache Framework, a paradigm to use state-of-the-art machine learning tools to the problem of content caching. In DeepCache's first iteration, we showcase by harnessing the powerful deep recurrent neural network models. It comprises of two main components: an object popularity predictor which builds upon deep LSTM Encoder-Decoder model, and, a smart caching policy component which accounts for the predicted object popularity to generate fake object requests such that traditional caching algorithms can proactively adapt the cached objects -- thus making it a "smart" caching policy. Through experiments, we have shown that applying DeepCache framework to existing caching policies such as LRU and k-LRU significantly boosts the number of cache hits. More details about this work can be found in the publications listed below.


Publications

  1. DeepCache: A Deep Learning Based Framework For Content Caching.
    Arvind Narayanan, Saurabh Verma, Eman Ramadan, Pariya Babaie, and Zhi-Li Zhang. ACM SIGCOMM 2018 Workshops - Network Meets AI & ML (NetAI’18), 2018. (Best Paper Award)
     
  2. Making Content Caching Policies “Smart” using the DeepCache Framework.
    Arvind Narayanan, Saurabh Verma, Eman Ramadan, Pariya Babaie, and Zhi-Li Zhang. SIGCOMM CCR. 2019

Supplementary Materials

  1. Github Code Repo. for Workload Generation used in DeepCache
  2. Presentation Slides for DeepCache (NetAI 2018 Paper)