How Should We Think about Persistent Data Structures?
How Should We Think about Persistent Data Structures?
复制标题
我们应该如何看待持久数据结构?
DOI:
10.1145/3519270.3538455
复制
发表时间:
2022
期刊:
影响因子:
--
通讯作者:
Scott, Michael L.
中科院分区:
文献类型:
--
作者:
Scott, Michael L.
For 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.