Snapshot: Fast, Userspace Crash Consistency for CXL and PM Using msync

Suyash Mahar, Mingyao Shen, Terence Kelly, Steven Swanson
{"title":"Snapshot: Fast, Userspace Crash Consistency for CXL and PM Using msync","authors":"Suyash Mahar, Mingyao Shen, Terence Kelly, Steven Swanson","doi":"arxiv-2310.16300","DOIUrl":null,"url":null,"abstract":"Crash consistency using persistent memory programming libraries requires\nprogrammers to use complex transactions and manual annotations. In contrast,\nthe failure-atomic msync() (FAMS) interface is much simpler as it transparently\ntracks updates and guarantees that modified data is atomically durable on a\ncall to the failure-atomic variant of msync(). However, FAMS suffers from\nseveral drawbacks, like the overhead of msync() and the write amplification\nfrom page-level dirty data tracking. To address these drawbacks while preserving the advantages of FAMS, we\npropose Snapshot, an efficient userspace implementation of FAMS. Snapshot uses compiler-based annotation to transparently track updates in\nuserspace and syncs them with the backing byte-addressable storage copy on a\ncall to msync(). By keeping a copy of application data in DRAM, Snapshot\nimproves access latency. Moreover, with automatic tracking and syncing changes\nonly on a call to msync(), Snapshot provides crash-consistency guarantees,\nunlike the POSIX msync() system call. For a KV-Store backed by Intel Optane running the YCSB benchmark, Snapshot\nachieves at least 1.2$\\times$ speedup over PMDK while significantly\noutperforming conventional (non-crash-consistent) msync(). On an emulated CXL\nmemory semantic SSD, Snapshot outperforms PMDK by up to 10.9$\\times$ on all but\none YCSB workload, where PMDK is 1.2$\\times$ faster than Snapshot. Further,\nKyoto Cabinet commits perform up to 8.0$\\times$ faster with Snapshot than its\nbuilt-in, msync()-based crash-consistency mechanism.","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"322 ","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-10-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2310.16300","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Crash consistency using persistent memory programming libraries requires programmers to use complex transactions and manual annotations. In contrast, the failure-atomic msync() (FAMS) interface is much simpler as it transparently tracks updates and guarantees that modified data is atomically durable on a call to the failure-atomic variant of msync(). However, FAMS suffers from several drawbacks, like the overhead of msync() and the write amplification from page-level dirty data tracking. To address these drawbacks while preserving the advantages of FAMS, we propose Snapshot, an efficient userspace implementation of FAMS. Snapshot uses compiler-based annotation to transparently track updates in userspace and syncs them with the backing byte-addressable storage copy on a call to msync(). By keeping a copy of application data in DRAM, Snapshot improves access latency. Moreover, with automatic tracking and syncing changes only on a call to msync(), Snapshot provides crash-consistency guarantees, unlike the POSIX msync() system call. For a KV-Store backed by Intel Optane running the YCSB benchmark, Snapshot achieves at least 1.2$\times$ speedup over PMDK while significantly outperforming conventional (non-crash-consistent) msync(). On an emulated CXL memory semantic SSD, Snapshot outperforms PMDK by up to 10.9$\times$ on all but one YCSB workload, where PMDK is 1.2$\times$ faster than Snapshot. Further, Kyoto Cabinet commits perform up to 8.0$\times$ faster with Snapshot than its built-in, msync()-based crash-consistency mechanism.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
快照:快速,用户空间崩溃一致性的CXL和PM使用msync
使用持久内存编程库的崩溃一致性要求程序员使用复杂的事务和手动注释。相比之下,故障原子msync() (FAMS)接口要简单得多,因为它透明地跟踪更新并保证在调用msync()的故障原子变体时修改的数据是原子持久的。然而,FAMS有几个缺点,比如msync()的开销和页级脏数据跟踪带来的写放大。为了在保留FAMS优点的同时解决这些缺点,我们提出了快照,一种有效的FAMS用户空间实现。Snapshot使用基于编译器的注释透明地跟踪用户空间中的更新,并在调用msync()时将它们与后备字节可寻址存储副本同步。通过在DRAM中保存应用程序数据的副本,snapsho改善了访问延迟。此外,与POSIX的msync()系统调用不同,Snapshot只在调用msync()时自动跟踪和同步更改,从而提供了崩溃一致性保证。对于运行YCSB基准测试的Intel Optane支持的KV-Store, snapshot在PMDK上实现了至少1.2倍的加速,同时显著优于传统的(非崩溃一致)msync()。在模拟的CXLmemory语义SSD上,Snapshot在所有单个YCSB工作负载上的性能优于PMDK高达10.9$\times$,其中PMDK比Snapshot快1.2$\times$。此外,京都内阁提交的执行速度比其内置的基于msync()的崩溃一致性机制快8.0倍。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Analysis of Synchronization Mechanisms in Operating Systems Skip TLB flushes for reused pages within mmap's eBPF-mm: Userspace-guided memory management in Linux with eBPF BULKHEAD: Secure, Scalable, and Efficient Kernel Compartmentalization with PKS Rethinking Programmed I/O for Fast Devices, Cheap Cores, and Coherent Interconnects
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1