一句话:提出 Corundum,用静态强制方式保证持久内存编程安全,避免程序员手动遵守复杂规则。
本文关注持久内存(PM)编程的安全性。PM 具备快速、字节可寻址且掉电保持的特点,可让复杂数据结构跨系统故障存活,但编程难度很高:它把锁、内存管理、指针安全等常见问题与 PM 特有缺陷结合在一起,还要求把更新日志写入 PM 以便崩溃恢复。任一步出错都可能破坏数据、泄漏资源或导致恢复失败。现有 C、C++、Java、Go 的 PM 库虽简化了部分问题,但仍要求程序员学习并完美应用复杂规则,因此仍存在大量可破坏数据的 bug。Corundum 提出静态强制持久内存安全的方法,目标是在静态阶段消除这些隐患,减少对程序员手动遵守规则的依赖。摘要未展开具体技术机制与实验结果。
Fast, byte-addressable, persistent main memories (PM) make it possible to build complex data structures that can survive system failures. Programming for PM is challenging, not least because it combines well-known programming challenges like locking, memory management, and pointer safety with novel PM-specific bug types. It also requires logging updates to PM to facilitate recovery after a crash. A misstep in any of these areas can corrupt data, leak resources, or prevent successful recovery after a crash. Existing PM libraries in a variety of languages -- C, C++, Java, Go -- simplify some of these problems, but they still require the programmer to learn (and flawlessly apply) complex rules to ensure correctness. Opportunities for data-destroying bugs abound.