InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache

InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache
复制标题

DOI:
--
复制
发表时间:
2020-01
期刊:
--
影响因子:
--
通讯作者:
Ao Wang;Jingyuan Zhang;Xiaolong Ma;Ali Anwar;Lukas Rupprecht;Dimitrios Skourtis;Vasily Tarasov
Ao Wang;Jingyuan Zhang;Xiaolong Ma;Ali Anwar;Lukas Rupprecht;Dimitrios Skourtis;Vasily Tarasov
中科院分区:
其他
文献类型:
--
作者:
Ao Wang;Jingyuan Zhang;Xiaolong Ma;Ali Anwar;Lukas Rupprecht;Dimitrios Skourtis;Vasily Tarasov

文献摘要

相似文献

互联网规模的Web应用程序变得越来越存储密集型,并且严重依赖内存中的对象缓存来获得所需的I/O性能。我们认为,新兴的无服务器计算模式提供了一个非常适合的,具有成本效益的平台对象缓存。我们提出了InfiniCache,这是一个首个内存中对象缓存系统,完全构建和部署在短暂的无服务器功能之上。InfiniCache利用和编排无服务器函数的内存资源,以启用弹性按使用付费缓存。InfiniCache的设计结合了擦除编码、智能计费持续时间控制和高效的数据备份机制,可最大限度地提高数据可用性和成本效益,同时平衡丢失缓存状态和性能的风险。我们在AWS Lambda上实现了InfiniCache,并表明它:(1)与AWS ElastiCache相比,在仅大型对象的生产工作负载中实现了31 - 96倍的租户端成本节约,(2)可以有效地为每个一小时的窗口提供95.4%的数据可用性,(3)实现了典型内存缓存中的比较性能。
Internet-scale web applications are becoming increasingly storage-intensive and rely heavily on in-memory object caching to attain required I/O performance. We argue that the emerging serverless computing paradigm provides a well-suited, cost-effective platform for object caching. We present InfiniCache, a first-of-its-kind in-memory object caching system that is completely built and deployed atop ephemeral serverless functions. InfiniCache exploits and orchestrates serverless functions' memory resources to enable elastic pay-per-use caching. InfiniCache's design combines erasure coding, intelligent billed duration control, and an efficient data backup mechanism to maximize data availability and cost-effectiveness while balancing the risk of losing cached state and performance. We implement InfiniCache on AWS Lambda and show that it: (1) achieves 31 -- 96X tenant-side cost savings compared to AWS ElastiCache for a large-object-only production workload, (2) can effectively provide 95.4% data availability for each one hour window, and (3) enables comparative performance seen in a typical in-memory cache.