Facebook has open-sourced code it uses to cache data without relying on DRAM for storage.
“As traditional dynamic random-access memory (DRAM) caches become more expensive and require more power to scale, companies like Facebook are exploring hardware choices such as non-volatile memory (NVM) drives to augment their caching systems,” states a new post by Sathya Gunasekar, Snehal Khandkar, Dmitry Vinnik, and Michael Cheng, who work on caching, open source advocacy, and strategy & compliance at The Social Network™.
“This DRAM and NVM hybrid model is a step forward, but innovative caching designs are needed to harness the full potential of the hybrid cache,” the four authors state. “This includes new caching heuristics research that must push the boundaries of traditional systems by identifying the relevant content to cache for the right duration.”
Facebook’s explorations saw it create a tool called CacheLib and release it as open-source on GitHub. The Social Network™ has also released CacheBench – described as “a benchmarking tool for evaluating caching performance on diverse production workloads”.
CacheLib is already used in production in “more than 70 large-scale systems at Facebook, including the social graph, content delivery network, storage, and look-aside key-value caches”.
The authors suggest that CacheLib and CacheBench “have the potential to become an industry standard for caching innovations and benchmarking”.
“To date, our collaborations with research universities, hardware manufacturers, and software companies have yielded substantial results that show the value of this toolkit.”
Enough value that Twitter is using it put solid-state disks to work for caching objects, while Pinterest is evaluating it “within its machine learning infrastructure systems to improve prediction performance and system stability”.
The post reveals that Facebook has also worked with Intel, KIOXIA, Samsung, and Western Digital “to standardize and enhance SSD technologies which enable improved caching solutions”, with those efforts becoming part of the Open Compute Project’s NVMe Cloud SSD Specification.
“This specification, along with CacheLib, will help adapt future NVM technologies for caching workloads across the industry,” the authors state. ®