OpLog: a library for scaling update-heavy data structures
Name
MIT-CSAIL-TR-2014-019.pdf
Size
251.71 KB
Format
Adobe PDF
Checksum (MD5)
d9405bc91a22f7e0942a984cdc0e14e7
Download all files submitted through automated deposit
Author(s) • • •
Boyd-Wickizer, Silas
Kaashoek, M. Frans
Morris, Robert
Zeldovich, Nickolai
Advisor(s)
Nickolai Zeldovich
Date Issued
September 16, 2014
Series/Report no.
MIT-CSAIL-TR-2014-019
Abstract
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.
Terms of Use
Creative Commons Attribution 4.0 International
Persistent DSpace Link