暴雪:将真正的持久性添加到主存储数据结构中
摘要:持久内存(PMEM)设备为保持主存数据结构和算法的灵活性提供了机会,同时增加了可靠性和持久性。这样做的挑战是将复制(用于可靠性)和故障原子性(用于持久性)与并发性(以充分利用持久内存带宽)相结合。由于复制更新日志的顺序性质与必须进行并发更新以充分利用CPU到内存之间的路径之间的矛盾,这些要求是相互矛盾的。我们提出了Blizzard——一个故障容忍、针对PMEM优化的持久编程运行时。Blizzard通过结合以下两个方面来解决这个基本的权衡:(1)一个耦合的操作日志,允许在PMEM专用的用户级复制堆栈与基于PMEM的持久堆栈之间进行紧密集成;(2)对并发操作之间的可交换性进行明确控制。我们用三个具有非常不同的数据结构要求的说明性应用程序展示了Blizzard的普遍性和潜力,这些应用程序展示了使用Blizzard,PMEM本地数据结构可以相比于另一种专门构建的持久应用程序运行时提供多达3.6倍的性能优势,同时更简单、更安全(提供故障原子性和复制)。
作者:Pradeep Fernando, Daniel Zahka, Ada Gavrilovska, Amitabha Roy, Subramanya R. Dulloor
论文ID:2305.09034
分类:Distributed, Parallel, and Cluster Computing
分类简称:cs.DC
提交时间:2023-05-17