How Should We Think about Persistent Data Structures?

Principles of Distributed Computing(2022)

引用 0|浏览44
暂无评分
摘要
BSTRACTFor machines with nonvolatile memory (NVM) but volatile caches, most work on persistent data structures has assumed that every operation must be guaranteed to survive any crash that occurs after returning to the caller. Most programmers, however, don't want to persist existing transient structures: they want to avoid serializing and deserializing structures traditionally kept in block-structured files and databases. For these, programmers are accustomed to buffered semantics, which allow persistence to be delayed-either for a brief period of time or until the execution of an explicit sync operation. Experiments with Rochester's Montage system confirm that buffered persistence can approach the performance of non-persistent structures placed in NVM-arguably the best one could hope for, and dramatically faster than systems with stricter semantics. As NVM proliferates, there will be more and more opportunities to soften the traditional boundary between (transient, byte-addressable) memory and (persistent, block-structured) storage. As we seek to formalize the development of persistent data structures, the PODC/DISC community will want to con-sider not only alternative correctness criteria, but also evolving hardware characteristics. Issues to be considered include the choice between evicting and non-evicting write-back, the introduction of nonvolatile caches, and the possibility that NVM bandwidth and latency may vary greatly with access granularity, locality, and concurrent DRAM activity.
更多
查看译文
关键词
Durable linearizability, periodic persistence, nonvolatile memory
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要