脸书开源缓存引擎CacheLib,连接产业推动缓存创新

脸书对外开源内部已经大量使用的缓存引擎CacheLib,CacheLib是一个可插拔的程序内缓存引擎,可用来构建和扩展高性能服务。脸书目前有70个大型系统,都已经使用CacheLib作为程序内缓存,包括社交图(Social Graph)、内容交付网络、存储和后备键值缓存等。除此之外,脸书还开源了基准测试工具CacheBench,供用户评估不同生产工作负载的缓存性能。

缓存在访问信息上扮演重要的角色,像是当电子邮件加载时,便需要缓存消息,当用户在刷新篇章面的时候,应用程序便无需重新访问相同的资料。但是脸书提到,大规模的缓存,到目前为止仍是一个复杂的工程挑战。企业必须平衡用户期望从缓存获得的体验,以及系统的高性能和成本效益。

脸书指出,过去每个缓存实例都由不同的功能团队独立创建和维护,这种效率不高的原因,是因为忽略了不同缓存系统,从部署到维护皆存在相同挑战。再加上传统的DRAM缓存不只昂贵,扩展也需要更多的电力,因此脸书便开始探索另外的选择,使用NVM驱动器来强化缓存系统。

虽然DRAM和NVM混合模型存在缓存发展潜力,但是要能完全发挥混合模型缓存的优势,需要有新的缓存设计,这包括新的启发式缓存研究,能够通过识别相关内容,在正确的时间中缓存,来突破传统系统的界线,而脸书现在要借由开源和产业合作,来推进缓存的发展。

脸书开发并开源程序内缓存引擎CacheLib,CacheLib提供C函数库,让开发人员能够利用简单的API,构建并且自定义可扩展的并行缓存,同时提供CacheBench,使其成为评估各种缓存应用程序的有效基准工具。

脸书表示,CacheLib和CacheBench作为开源平台,有望成为缓存创新和基准测试的产业标准。目前脸书开始与研究型大学、硬件制造商和软件公司合作,推动缓存创新。脸书正与推特合作,将CacheLib集成到缓存框架Pelikan中,使推特在基础设施中能以SSD来缓存对象,而Pinterest也计划在机器学习基础设施中,采用CacheLib来提高预测性能和系统稳定度。不只如此,脸书也和英特尔、Kioxia、三星与WD等硬件制造商合作,共同标准化和强化SSD技术,以改进缓存解决方案。