OpLog: a library for scaling update-heavy data structures
Author(s)
Boyd-Wickizer, Silas; Kaashoek, M. Frans; Morris, Robert; Zeldovich, Nickolai
DownloadMIT-CSAIL-TR-2014-019.pdf (251.7Kb)
Other Contributors
Parallel and Distributed Operating Systems
Advisor
Nickolai Zeldovich
Terms of use
Metadata
Show full item recordAbstract
Existing techniques (e.g., RCU) can achieve good multi-core scaling for read-mostly data, but for update-heavy data structures only special-purpose techniques exist. This paper presents OpLog, a general-purpose library supporting good scalability for update-heavy data structures. OpLog achieves scalability by logging each update in a low-contention per-core log; it combines logs only when required by a read to the data structure. OpLog achieves generality by logging operations without having to understand them, to ease application to existing data structures. OpLog can further increase performance if the programmer indicates which operations can be combined in the logs. An evaluation shows how to apply OpLog to three update-heavy Linux kernel data structures. Measurements on a 48-core AMD server show that the result significantly improves the performance of the Apache web server and the Exim mail server under certain workloads.
Date issued
2014-09-16Series/Report no.
MIT-CSAIL-TR-2014-019
Collections
The following license files are associated with this item: