Cache-Line Transactions: Building Blocks for Persistent Kernel Data Structures Enabled by AspectC++

Marcel Köppen, J. Traue, C. Borchert, J. Nolte, O. Spinczyk
{"title":"Cache-Line Transactions: Building Blocks for Persistent Kernel Data Structures Enabled by AspectC++","authors":"Marcel Köppen, J. Traue, C. Borchert, J. Nolte, O. Spinczyk","doi":"10.1145/3365137.3365396","DOIUrl":null,"url":null,"abstract":"With the availability of systems that contain large amounts of byte-addressable non-volatile memory (NVRAM), there is a growing need for data structures that can be mapped into a process's address space and be used without data (de-)serialization. While NVRAM is able to retain memory contents during system failure and power loss, data consistency has to be preserved by using transactional operations for data manipulation. This paper describes a lightweight and efficient transaction mechanism for small data structures in memory-mapped NVRAM. The size per data structure is limited to half a cache-line, so that the approach cannot serve as a general purpose mechanism for arbitrary applications, but could be used within an operating system as a low-level building block for more complex data structures. By using aspect-oriented programming with AspectC++, the mechanism can be used in an almost transparent manner, which helps to avoid many possible sources for bugs.","PeriodicalId":193757,"journal":{"name":"Proceedings of the 10th Workshop on Programming Languages and Operating Systems","volume":"226 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-10-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 10th Workshop on Programming Languages and Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3365137.3365396","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

Abstract

With the availability of systems that contain large amounts of byte-addressable non-volatile memory (NVRAM), there is a growing need for data structures that can be mapped into a process's address space and be used without data (de-)serialization. While NVRAM is able to retain memory contents during system failure and power loss, data consistency has to be preserved by using transactional operations for data manipulation. This paper describes a lightweight and efficient transaction mechanism for small data structures in memory-mapped NVRAM. The size per data structure is limited to half a cache-line, so that the approach cannot serve as a general purpose mechanism for arbitrary applications, but could be used within an operating system as a low-level building block for more complex data structures. By using aspect-oriented programming with AspectC++, the mechanism can be used in an almost transparent manner, which helps to avoid many possible sources for bugs.
缓存行事务:由aspectc++支持的持久内核数据结构的构建块
随着包含大量字节可寻址非易失性内存(NVRAM)的系统的出现,越来越需要可以映射到进程地址空间的数据结构,并且可以在不进行数据(反)序列化的情况下使用这些数据结构。虽然NVRAM能够在系统故障和断电期间保留内存内容,但必须通过使用事务性操作进行数据操作来保持数据一致性。本文描述了一种用于内存映射NVRAM中小数据结构的轻量级高效事务处理机制。每个数据结构的大小被限制在半个缓存行,因此该方法不能作为任意应用程序的通用机制,但可以在操作系统中用作更复杂数据结构的低级构建块。通过在aspectc++中使用面向方面的编程,可以以一种几乎透明的方式使用该机制,这有助于避免许多可能的bug来源。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信