Footprint Descriptors: Theory and Practice of Cache Provisioning in a Global CDN

Modern CDNs cache and deliver a highly-diverse set of traffic classes, including web pages, images, videos and software downloads. It is economically advantageous for a CDN to cache and deliver all traffic classes using a shared distributed cache server infrastructure. However, such sharing of cache resources across multiple traffic classes poses significant cache provisioning challenges that are the focus of this paper. Managing a vast shared caching infrastructure requires careful modeling of user request sequences for each traffic class. Using extensive traces from Akamai's CDN, we show how each traffic class has drastically different object access patterns, object size distributions, and cache resource requirements. We introduce the notion of a footprint descriptor that is a succinct representation of the cache requirements of a request sequence. Leveraging novel connections to Fourier analysis, we develop a footprint descriptor calculus that allows us to predict the cache requirements when different traffic classes are added, subtracted and scaled to within a prediction error of 2.5%. We integrated our footprint calculus in the cache provisioning operations of the production CDN and show how it is used to solve key challenges in cache sizing, traffic mixing, and cache partitioning.

[1]  Mark Horowitz,et al.  An analytical cache model , 1989, TOCS.

[2]  P. Sadayappan,et al.  PARDA: A Fast Parallel Reuse Distance Analysis Algorithm , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[3]  G. Edward Suh,et al.  Analytical cache models with applications to cache partitioning , 2001, ICS '01.

[4]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[5]  Hao Luo,et al.  HOTL: a higher order theory of locality , 2013, ASPLOS '13.

[6]  Chen Ding,et al.  All-window profiling and composable models of cache sharing , 2011, PPoPP '11.

[7]  Ronald Fagin,et al.  Asymptotic Miss Ratios over Independent References , 1977, J. Comput. Syst. Sci..

[8]  Ramesh K. Sitaraman,et al.  The Akamai network: a platform for high-performance internet applications , 2010, OPSR.

[9]  Ramesh K. Sitaraman,et al.  Overlay Networks: An Akamai Perspective , 2014 .

[10]  Harold S. Stone,et al.  Footprints in the cache , 1986, SIGMETRICS '86/PERFORMANCE '86.

[11]  C. Cascaval,et al.  Calculating stack distances efficiently , 2003, MSP '02.

[12]  Yingwei Luo,et al.  Kinetic Modeling of Data Eviction in Cache , 2016, USENIX Annual Technical Conference.

[13]  W. Frank King,et al.  Analysis of Demand Paging Algorithms , 1971, IFIP Congress.

[14]  Bruce M. Maggs,et al.  Algorithmic Nuggets in Content Delivery , 2015, CCRV.

[15]  Chen Ding,et al.  A Composable Model for Analyzing Locality of Multi-threaded Programs , 2009 .

[16]  Michele Garetto,et al.  A unified approach to the performance analysis of caching systems , 2013, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[17]  Ramesh K. Sitaraman,et al.  End-User Mapping: Next Generation Request Routing for Content Delivery , 2015, Comput. Commun. Rev..

[18]  Michele Garetto,et al.  A unified approach to the performance analysis of caching systems , 2014, INFOCOM.

[19]  Yingwei Luo,et al.  Optimal Footprint Symbiosis in Shared Cache , 2015, 2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[20]  Andrew Warfield,et al.  Characterizing Storage Workloads with Counter Stacks , 2014, OSDI.

[21]  Hao Che,et al.  Hierarchical Web caching systems: modeling, design and experimental results , 2002, IEEE J. Sel. Areas Commun..

[22]  Erol Gelenbe,et al.  A Unified Approach to the Evaluation of a Class of Replacement Algorithms , 1973, IEEE Transactions on Computers.

[23]  Donald F. Towsley,et al.  A utility optimization approach to network cache design , 2016, IEEE INFOCOM 2016 - The 35th Annual IEEE International Conference on Computer Communications.

[24]  Yale N. Patt,et al.  Utility-Based Cache Partitioning: A Low-Overhead, High-Performance, Runtime Mechanism to Partition Shared Caches , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

[25]  Irfan Ahmad,et al.  Efficient MRC Construction with SHARDS , 2015, FAST.

[26]  Yan Solihin,et al.  Predicting inter-thread cache contention on a chip multi-processor architecture , 2005, 11th International Symposium on High-Performance Computer Architecture.

[27]  David A. Padua,et al.  Calculating stack distances efficiently , 2002, MSP/ISMM.

[28]  Mukaddim Pathan,et al.  Advanced Content Delivery, Streaming, and Cloud Services , 2014 .