Technical Report MSC-2021-04

Title: Limited Associativity Caching in the Data Plane
Authors: Dor Hovav
Supervisors: Roy Friedman
PDFCurrently accessibly only within the Technion network
Abstract: Caching is a way for boosting systems performance. The essence of caching means that storing the data closer to the application affects the time that the data can be served to the client and reduce the load on servers.

In-network caching promises to improve the performance of distributed and networked ap- plications. This is by storing so-called hot items in the network switches on-route between clients who need access to the data and the storage servers who maintain it. Since the data flows through those switches in any case, it is natural to cache hot items there.

Programmable switches enable managing such caches in software, where the program gets compiled and then executed at ASIC speed. Yet, their limited programming model for speed and energy efficiency makes this task non-trivial.

Most software-managed caches treat the cache as a fully associative region. Alas, a fully associative design seems to be at odds with programmable switches’ goal of handling packets in a short bounded amount of time, as well as their restricted programming model. Recently, the benefits of applying limited associative designs to software caches were studied and demon- strated.

In this work, we present PKache, a generic limited associativity cache implementation in the programmable switches’ domain-specific P4 language, and demonstrate its utility by realizing multiple popular cache management schemes.

CopyrightThe above paper is copyright by the Technion, Author(s), or others. Please contact the author(s) for more information

Remark: Any link to this technical report should be to this page (, rather than to the URL of the PDF files directly. The latter URLs may change without notice.

To the list of the MSC technical reports of 2021
To the main CS technical reports page

Computer science department, Technion