一句话:提出细粒度检查点与缓存行内撤销日志,使 NVM 数据结构无需常规缓存行刷写即可快速恢复,且运行时开销低。
非易失性内存(NVM)为高性能持久化数据结构提供了可能,但保证内存写入到达 NVM 的顺序代价高昂,通常需要刷写数据并等待完整内存往返。本文提出细粒度检查点(Fine-Grained Checkpointing),在系统故障后于 NVM 中保证一致且可快速恢复的数据结构;以及缓存行内日志(In-Cache-Line Logging),一种撤销日志技术,使正常路径无需刷写缓存行即可恢复较早状态。作者将两种技术实现在 Masstree 中,使其持久化,并展示其易于应用于高度优化系统,运行时开销仅为 5.9–15.4%。
Non-Volatile Memory offers the possibility of implementing high-performance, durable data structures. However, achieving performance comparable to well-designed data structures in non-persistent (transient) memory is difficult, primarily because of the cost of ensuring the order in which memory writes reach NVM.\@ Often, this requires flushing data to NVM and waiting a full memory round-trip time. In this paper, we introduce two new techniques: Fine-Grained Checkpointing, which ensures a consistent, quickly recoverable data structure in NVM after a system failure, and In-Cache-Line Logging, an undo-logging technique that enables recovery of earlier state without requiring cache-line flushes in the normal case. We implemented these techniques in the Masstree data structure, making it persistent and demonstrating the ease of applying them to a highly optimized system and their low (5.9-15.4%) runtime overhead cost.