Seminar: ceClub: The Technion Computer Engineering Club
cache_ext: Customizing the Page Cache with eBPF
The OS page cache is central to the performance of many applications, by reducing excessive accesses to storage. However, its one-size-fits-all eviction policy performs poorly in many workloads. While the systems community has experimented with new and adaptive eviction policies in non-OS settings (e.g., key-value stores, CDNs), it is very difficult to implement such policies in the kernel. To address these shortcomings, we design a flexible eBPF-based framework for the Linux page cache, called cache_ext, that allows developers to customize the page cache without modifying the kernel. cache_ext enables applications to customize the page cache policy for their specific needs, while also ensuring that different applicationsโ policies do not interfere with each other and preserving the page cacheโs ability to share memory across different processes. We demonstrate the flexibility of cache_extโs interface by using it to implement eight different policies, including sophisticated eviction algorithms. Our evaluation shows that it is indeed beneficial for applications to customize the page cache to match their workloadsโ unique properties, and that they can achieve up to 70% higher throughput and 58% lower tail latency.
Bio:
Tal Zussman is a PhD student in Computer Science at Columbia University, advised by Prof. Asaf Cidon. He works on operating systems and eBPF, with a focus on accelerating, customizing, and modernizing memory management and storage systems. He received his MS and BS degrees at Columbia, and is an NSF Graduate Research Fellow.

