Vilamb: Low Overhead Asynchronous Redundancy for Direct Access NVMCarnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-20-101, April 2020.
Rajat Kateja, Andy Pavlo, Gregory R. Ganger
Carnegie Mellon University
Lazy redundancy maintenance can provide direct access non-volatile memory (NVM) with low-overhead data integrity features. The Vilamb library lazily maintains redundancy (per-page checksums and cross-page parity) for applications that exploit fine-grained direct load/store access to NVM data. To do so, Vilamb repurposes page table dirty bits to identify pages where redundancy must be updated, addressing the consistency challenges of using dirty bits across crashes. A periodic background thread updates outdated redundancy at a dataset-specific frequency chosen to tune the performance vs. time-to-coverage tradeoff. This approach avoids critical path interpositioning and often amortizes redundancy updates across many stores to a page, enabling Vilamb to maintain redundancy at just a few percent overhead. For example, MongoDB’s YCSB throughput drops by less than 2% when using Vilamb with a 30 sec period and by only 3–7% with a 1 sec period. Compared to the state-of-the-art approach, Vilamb with a 30 sec period increases the throughput by up to 1.8 for Redis with YCSB workloads and by up to 4.2 for write-only microbenchmarks.
KEYWORDS: NVM, DAX, asynchronous redundancy
FULL TR: pdf