Hosking, Antony LMoss, J. Eliot B.2024-04-262024-04-261995https://hdl.handle.net/20.500.14394/10015Many systems must dynamically track writes to cached data, for the purpose of reconciling those updates with respect to the permanent or global state of the data. For example, distributed systems employ coherency protocols to ensure a consistent view of shared data. Similarly, database systems log updates both for concurrency control and to ensure the resilience of those updates in the face of system failures. Here, we measure and compare the absolute performance of several alternative mechanisms for the lightweight detection of writes to cached data in a persistent system, and the relative overhead to log those writes to stable storage in the form of a checkpoint. A checkpoint defines a consistent state to which the system will be restored in the event of any subsequent failure. The effcient detection and logging of updates is critical to the performance of persistent systems that embody a fine-grained data model, since per-object overheads are typically very low. Our results reveal a wide range of performance for the alternatives, indicating that the right choice of mechanism is important. They also demonstrate that software write detection mechanisms can significantly outperform approaches that rely solely on the hardware and operating system.Computer SciencesLightweight write detection and checkpointing for fine-grained persistencearticle