M.Sc Thesis

M.Sc StudentHovav Dor
SubjectLimited Associativity Caching in the Data
DepartmentDepartment of Computer Science
Supervisor PROF. Roy Friedman
Full Thesis textFull thesis text - English Version


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.