【Java Debug 笔记】 本文正在参加Java主题月-Java开发Debug实录,详情查看<活动链接>,该系列我将拆分为几个part来作为翻译分享。
😄
地址:www.usenix.org/conference/…
最近的研究表明,应用程序常常错误地实现崩溃一致性。我们 介绍了ccfs,一种提高正确性的文件系统 应用程序级崩溃一致性协议 保持高性能。ccfs的一个关键思想是 溪流的抽象。在流中,更新是 按程序顺序提交,从而有助于正确性; 跨流,没有排序限制,因此 实现调度灵活性和高性能。 我们以经验证明 顶级CCF实现了高水平的崩溃一致性。进一步证明了ccfs在标准文件下的性能- 系统基准是优秀的,在最坏的情况下是标准的 在Linux ext4和 有些病例明显好转。总的来说,我们证明了这一点 应用程序正确性和高性能都可以 在现代文件系统中实现。
USENIX致力于对我们活动中提出的研究进行开放获取。活动开始后,所有人均可免费获得论文和会议记录。活动结束后发布的任何视频,音频和/或幻灯片也是免费的,并向所有人开放。支持USENIX和我们对开放访问的承诺。
本文被收录在《学报》
第15届USENIX会议
文件和存储技术(FAST’17)。
•Santa Clara, CA, USA
ISBN 978-1-931971-36-2
- 介绍
“人们的目标应该是让‘写得不好’ 代码“只是工作”–Linus Torvalds[52] 排序约束是一种常见的技术 应用于各级计算机系统 简化正确程序的构造。例如, 锁和条件变量限制了多线程 程序运行,使并发编程更简单[2];具有更严格约束的内存一致性模型- 约束(例如,序列一致性)通常使得对程序行为的解释更容易[47];fsync调用 在数据管理应用程序中,确保前面的I/O 在以后的操作之前完成操作[5,35]。 不幸的是,限制排序带来了一个基本的代价:性能差。向并发程序添加同步原语会增加开销 降低性能[19,21];众所周知,更强的多处理器内存模型会产生更低的吞吐量[16];强制写入磁盘或SSD可以从根本上降低I/O性能[5,6]。而在极少数情况下我们可以 在大多数情况下实现正确性和性能[39] 在这种情况下,我们必须做出一个令人讨厌的选择来牺牲一个。 在现代存储系统中,这种张力 出现。例如,文件系统可以按顺序提交所有更新,添加约束以简化构建 应用程序(及其崩溃恢复协议)的 他们[3,35]。许多文件系统开发人员已经确定,这样的排序是禁止性能的;作为一个 结果,大多数现代文件系统减少了内部排序 约束条件。例如,许多文件系统(包括 ext4、xfs、btrfs和4.4BSD快速文件系统)重新订购 应用程序写入[1],一些文件系统无序提交目录操作(例如btrfs[35])。降低 存储堆栈的级别也会积极地重新排序,以 减少寻求并获得分组利益[22,23,41,43]。 然而,研究表明,由于重新排序,用户级应用程序通常是不正确的[35,56]。 许多应用程序使用专门的写入协议来 保持其持久数据结构的崩溃一致性。协议,由于设计或意外,经常 要求所有写操作按其发出的顺序提交[36]。 本文的主要假设是 设计和实现的文件系统可以同时实现这两个功能 订购和高性能。我们将在崩溃一致性文件系统的上下文中探讨这个假设 (ccfs),一种新的文件系统,它支持崩溃一致的应用程序,同时提供优异的性能。 ccfs提供的关键的新抽象,使高性能和正确性的目标得以实现 同时相遇的,是溪流。每个应用程序的 文件系统更新被逻辑地分组到一个流中; 流中的更新(包括文件数据写入)是 保证按顺序提交到磁盘。因此,流使应用程序能够确保提交是有序的 (使恢复变得简单);将更新分隔在 流可防止错误的写入依赖关系,并启用 文件系统需要重新排序以充分提高性能。 在这种抽象之下,ccfs包含许多 高性能的机制。关键是,虽然订购更新似乎会过度限制文件系统 在实现中,我们展示了在许多现代系统中发现的日志记录机制可以被用来 在维持秩序的同时产生高性能。更多 具体地说,ccfs使用了一种新的混合粒度日志记录方法,该方法分别保持每个日志的顺序 溪流;混合粒度进一步支持其他需要的 优化,包括DeltaJournalin和无指针 元数据结构。Ccfs非常小心地保留出现在现代文件系统(如ext4)中的优化 一开始是不符合严格的秩序,与新的 诸如保序延迟分配等技术。
我们显示了由ccfs维护的顺序,如图1:日志更新协议所示。一个简单的写前日志版本的伪代码;每条语句都是一个系统调用。普通文本直接对应于协议的逻辑,而粗体部分则是为了便于移植而需要的额外度量。斜体注释显示哪些度量值是正确的 在默认模式ext2、ext3、ext4、xfs和 btrfs和ext3/4的写回模式(ext3 wb,ext4 wb)。 通过对五个广泛应用的实例的测试,证明了该方法的正确性- 包括Git和LevelDB(这两者在许多现代文件系统上都是不一致的[35])。我们还展示了大多数应用程序和标准基准 只在一个流中表现出色。因此,ccfs使得在实践中有效地实现崩溃一致性变得简单,而不需要太多开发人员开销。 纸张结构如下。我们提供激励和背景(§2) ,呈现CCF(§3) 评估 它(§4). 我们讨论相关工作(§5) 并得出结论(§6).
参考文献
[1] 伦齐H。Arpaci Dusseau和Andrea C。阿帕奇-
杜梭。操作系统:三个简单的部分。
Arpaci Dusseau图书,0.9版,2014年。
[2] 安德鲁D。比雷尔。课程简介-
用细线敲打。技术报告SRC-RR-35,
1989年1月。
[3] 詹姆斯·博恩霍尔特、安托万·考夫曼、嘉林
李、阿文德·克里希纳穆尔蒂、艾米娜·托拉克和
王希。指定和检查文件系统
崩溃一致性模型。在法院程序中
第21届国际建筑会议
支持编程语言和运算符-
ing系统(ASPLOS 21),亚特兰大,乔治亚州,4月
2016
[4] 内森C。伯内特。档案信息与控制
系统缓冲区管理。大学博士论文
威斯康星麦迪逊大学,2006年10月。
[5] Vijay Chidambaram、Thanumalayan Sankara-
纳拉亚娜·皮莱,安德里亚·C。Arpaci Dusseau和
伦齐H。阿帕奇·杜梭。乐观崩溃骗局-
姐妹关系。在第24届ACM研讨会的会议记录中-
操作系统原理研究所(SOSP'13),
内马科林林地度假村,法明顿,宾州-
西尔瓦尼亚,2013年10月。
[6] Vijay Chidambaram、Tushar Sharma、Andrea C。
Arpaci Dusseau和Remzi H。阿帕奇·杜梭。
一致性,无需排序。在诉讼程序中
第十届USENIX文件与存储研讨会
技术(FAST'12),第101-116页,圣何塞,
加利福尼亚,2012年2月。
[7] Sailesh Chutani,欧文T。安德森,迈克尔L。
卡扎尔,布鲁斯W。莱弗雷特,W。安东尼·梅森,还有
罗伯特N。西德博坦。事件文件系统。
在USENIX冬季技术会议记录中
会议(USENIX Winter'92),第43-60页,
加利福尼亚州旧金山,1992年1月。
[8] 杰里米·康迪特,埃德蒙·B。克里斯托,南丁格尔-
弗罗斯特,伊佩克,本杰明李,道格
汉堡包和德里克·库切。更好的I/O通过
字节可寻址的持久内存。进行中-
第22届ACM运营管理研讨会综述
系统原理(SOSP'09),大天空,蒙大拿,
2009年10月。
[9] 乔纳森·科比特。比POSIX好吗?,
2009年3月。2016年4月检索自
https://lwn.net/Articles/323752/.
[10] 克里斯汀·泽扎特克和M。安东·埃特尔。林洛夫斯:
Linux的日志结构文件系统。专业版-
USENIX年度技术会议-
费伦斯(弗里尼克斯轨道),圣地亚哥,加利福尼亚州,
2000年6月。
[11] Linux文档。XFS延迟日志-
装饰设计。2016年4月检索自
https://www.kernel.org/doc/Documentation
/文件系统/xfs-delayed-logging-design.txt。
[12] 文件台。文件台。2016年3月检索自
https://github.com/filebench/filebench/wiki.
[13] 克里斯托弗·弗罗斯特、迈克·马马雷拉、埃迪
科勒,安德鲁·德洛斯·雷耶斯,尚特·霍夫塞皮安,
安德鲁·松冈和张磊。广义
文件系统依赖项。在诉讼程序中
第21届ACM操作系统研讨会
原则(SOSP'07),第307-320页,史蒂文森,
华盛顿,2007年10月。
[14] 格雷戈里R。Ganger,Marshall Kirk McKusick,
克雷格A。N。苏尔斯和耶鲁。帕特。软更新:
文件元数据更新问题的解决方案
系统。计算机系统上的ACM事务
(TOCS),第18(2)条,2000年5月。
[15] 格雷戈里R。Ganger和Yale N。帕特。元数据更新-
文件系统中的数据性能。诉讼中
第一届操作系统研讨会-
签署和实施(OSDI'94),第49-60页,
1994年11月,加利福尼亚州蒙特利。
[16] Kourosh Gharachorloo、Daniel Lenoski、James
劳登,菲利普·吉本斯,阿诺普·古普塔和约翰
轩尼诗。内存一致性和事件顺序-
在可伸缩共享内存多处理器中的应用。
第17届国际年会论文集
计算机体系结构研讨会(ISCA'90),
西雅图,华盛顿,1992年5月。
[17] 吉姆·格雷和安德烈亚斯·鲁特。事务处理程序-
转让:概念和技术。摩根考夫-
曼恩,1993年。
[18] 罗伯特·哈格曼。重新实现Cedar文件
使用日志记录和组提交的系统。专业版-
第十一届ACM运营研讨会纪要-
ing系统原理(SOSP'87),德克萨斯州奥斯汀,
1987年11月。
[19] 蒂莫西L。哈里斯。实用主义的实现
非阻塞链表。DISC,2001年。
[20] 泰勒·哈特、克里斯·德拉加、迈克尔·沃恩-
德雷亚C。Arpaci Dusseau和Remzi H。阿帕奇-
杜梭。文件不是文件:理解
苹果桌面应用程序的I/O行为。在
第23届ACM操作研讨会论文集-
系统原理(SOSP'11),卡斯凯斯,波尔图-
图加尔,2011年10月。
[21]莫里斯·赫利希。无等待同步。
编程语言学报,11(1),
1991年1月。
[22]天。M。雅各布森和J。威尔克斯。磁盘调度Al-
基于旋转位置的算法。技术
报告HPL-CSP-91-7,Hewlett-Packard Laborato-
赖斯,1991年。
[23]JaehoKim、Jongmoochi、YongseokOh、Donghee
李,金恩森和山姆H。不。磁盘计划-
适用于固态硬盘驱动器的规则。英斯福特,格勒诺布尔,
法国,2009年10月。
[24]蓝月路,Thanumalayan Sankaranarayana Pillai,
安德里亚C。Arpaci Dusseau和Remzi H。阿帕奇-
杜梭。从Val中分离钥匙-
SSD存储中的UE。在诉讼程序中
第14届USENIX文件与存储会议
加州圣克拉拉科技公司(FAST'16),
2016年2月。
[25]陆兰月,张玉浦,陈道,萨默尔
阿尔基斯瓦尼,安德里亚C。Arpaci Dusseau和
伦齐H。阿帕奇·杜梭。身体疾病-
基于容器的文件系统中的glement。在
第十一届操作科学研讨会论文集
系统设计与实施(OSDI'14),
布鲁姆菲尔德,科罗拉多州,2014年10月。
[26]马里亚布。Fusion io NVMFS原子
写支持。2016年4月检索自
https://mariadb.com/kb/en/mariadb/fusion-io-
nvmfs原子写入支持/。
[27]水银。处理存储库
以及国家腐败。恢复
2016年4月https://www.mercurial-
scm.org/wiki/RepositoryCorruption。
[28]微软。使用Trans的替代方法-
操作NTFS。2016年4月检索
从https://msdn.microsoft.com/en-
美国/图书馆/hh802690.aspx。
[29]张宇民、吴鹤康、金泰秀,
李善元和杨一荣。轻巧
Transac上的应用程序级崩溃一致性-
你的储藏室。在美国进行
年度技术会议(USENIX ATC’15),
加利福尼亚州圣克拉拉,2015年7月。
[30]摄氏度。莫汉,D。哈德尔,B。林赛,H。皮拉赫什,
和P。施瓦茨。白羊座:交易记录-
支持细粒度锁定的ery方法
以及使用预写日志记录的部分回滚。
数据库系统ACM交易,17(1):94-
1992年3月16日。
[31]埃德蒙.B。南丁格尔,考什克·维拉哈文,
Peter M Chen和Jason Flinn。重新考虑同步。
在第七届操作系统研讨会论文集上
系统设计与实施(OSDI'06),
第1-16页,西雅图,华盛顿,2006年11月。
[32]帕特里克·奥尼尔、爱德华·程、迪特尔·高利克,
伊丽莎白奥尼尔。日志结构合并-
树(LSM树)。《信息学报》,33(4):351–385,
1996
[33]斯坦•帕克、特伦斯•凯利和沈凯。失败-
原子Msync():一种简单有效的机制-
nism用于保持持久数据的完整性。
欧洲系统会议(EuroSys)进程
2013年4月,捷克共和国布拉格。
[34]史蒂文•佩利,彼得•M。陈和托马斯F。
韦尼施。记忆持久性。诉讼中
第41届国际计算机研讨会
建筑(ISCA'14),美国明尼苏达州明尼阿波利斯,
2014年6月。
[35]Thanumalayan Sankaranarayana Pillai,维杰
基丹巴兰、拉拿但、亚拉迦班、撒母耳
阿尔基斯瓦尼,安德里亚C。Arpaci Dusseau和
伦齐H。阿帕奇·杜梭。所有文件系统都是
不平等:论手工艺的复杂性
崩溃一致性应用程序。在诉讼程序中
第11届操作系统设计研讨会
和实施(OSDI'14),布鲁姆菲尔德,
科罗拉多州,2014年10月。
[36]Thanumalayan Sankaranarayana Pillai,维杰
基丹巴兰、拉拿但、亚拉迦班、撒母耳
阿尔基斯瓦尼,安德里亚C。Arpaci Dusseau和
伦齐H。阿帕奇·杜梭。崩溃一致性。
ACM通讯,58(10),10月
2015
[37]唐纳德,波特,欧文斯,霍夫曼,克里斯托弗。
罗斯巴赫、亚历山大·本和埃米特·威切尔。
操作系统事务。在诉讼程序中
第八届操作系统设计研讨会
和实施(OSDI'08),加利福尼亚州圣地亚哥-
福尼亚,2008年12月。
[38]维贾扬·普拉巴卡兰,托马斯L。Rodeheffer和
周立东说。事务性闪存。诉讼中
第八届操作系统设计研讨会
和实施(OSDI'08),加利福尼亚州圣地亚哥-
福尼亚,2008年12月。
[39]乙。雷克特,C。关于。赖特和F。牛。霍格威德!:
随机变量并行化的无锁方法
梯度下降。神经信息研究进展
处理,2011年。
[40]孟德尔·罗森布鲁姆和约翰·奥斯特霍特。德-
日志结构文件的签署与实现
系统。计算机系统上的ACM事务,
10(1):26–521992年2月。
[41]克里斯·鲁姆勒和约翰·威尔克斯。介绍-
磁盘驱动器建模。IEEE计算机,
27(3):17–281994年3月。
[42]Margo Seltzer、Keith Bostic、Marshall Kirk McKu-
生病了,还有卡尔·斯泰林。实现一个
UNIX的日志结构文件系统。进行中-
乌塞尼克斯冬季技术会议
(USENIX Winter'93),第307-326页,圣地亚哥,
加州,1993年1月。
[43]玛戈·萨尔茨、彼得·陈和约翰·奥斯特霍特。
重新讨论磁盘调度。在法院程序中
USENIX冬季技术会议(USENIX)
1990年冬天),第313-324页,华盛顿特区,1月-
1990年8月。
[44]玛歌一世。萨尔茨。文件系统性能和
交易支持。EECS系博士论文-
加州大学伯克利分校医学院,1993年6月。
[45]玛歌一世。塞尔茨,格雷戈里R。甘格,M。柯克
麦库西克,基思A。史密斯,克雷格A。N。苏尔斯,还有
克里斯托弗A。斯坦。日志与软备份-
日期:文件中的异步元数据保护
系统。在USENIX年刊
技术会议(USENIX'00),第71-84页,
加利福尼亚州圣地亚哥,2000年6月。
[46]Ji Yong Shin,Mahesh Balakrishnan,都铎王朝-
伊恩和哈基姆·威瑟斯彭。同位素:Transac-
块存储的隔离。诉讼中
第14届USENIX文件和存储会议-
age Technologies(FAST'16),加州圣克拉拉-
nia,2016年2月。
[47]丹尼尔J。马克·D·索林。希尔和大卫A。木头。
内存一致性和缓存合作入门-
相干性。计算机建筑学综合讲座-
建筑,2011年11月。
[48]理查德P。斯皮兰、萨钦·盖克瓦德、曼朱纳特
奇尼、埃雷斯·扎多克和查尔斯·P。赖特。恩-
通过轻量级
内核扩展。在第七届会议上
USENIX文件和存储技术研讨会-
gies(FAST'09),旧金山,加利福尼亚,二月-
2009年3月。
[49]SQLite。SQLite中的隔离。2016年12月检索
从https://www.sqlite.org/isolation.html.
[50]SQLite。SQLite所理解的SQL。恢复
2016年12月https://www.sqlite.org/lang.html.
[51]瓦西里·塔拉索夫、埃雷斯·扎多克和斯宾塞·谢普勒。
Filebench:一种灵活的文件系统框架
基准测试;登录:USENIX杂志,
41(1),2016年6月。
[52]莱纳斯·托瓦尔兹。Linux 2.6.29版。2016年4月检索
从https://lkml.org/lkml/2009/3/25/632.
[53]西奥多·托奥。ext4:删除呼叫
从delalloc到ext4 jbd2文件inode()
写入路径。2016年4月检索自
http://lists.openwall.net/linux-ext4/2012/11/16/9.
[54]Rajat Verma,Anton Ajay Mendez,斯坦公园,
Sandya Srivilliputur Mannarswamy,特伦斯P。
凯利和查尔斯B。莫雷三世原子失败
Linux文件系统中应用程序数据的更新-
透射电镜。在第十三届会议的议事程序中-
文件和存储技术(FAST’15),
加利福尼亚州圣克拉拉,2015年2月。
[55]查尔斯P。赖特、理查德·斯皮兰、戈帕兰·西-
vathanu和Erez Zadok。延长酸塞曼-
通过Ptrace连接到文件系统。ACM交易-
《存储技术规范》(TOS),3(2):1–422007年6月。
[56]杨俊峰、坎萨和道森·恩格勒。前-
PLODE:一个轻量级的通用查找系统-
正在清除严重的存储系统错误。诉讼中
第七届操作系统设计研讨会
和实施(OSDI'06),西雅图,华盛顿-
2006年11月,华盛顿。
[57]郑迈,图切克,黄大川,冯
秦,马克·利利布里奇,伊丽莎白S。杨,比尔W
赵和沙申辛格。折磨数据库
乐趣和利润。在第十一届研讨会的会议记录中-
操作系统设计与实现研究-
10月,科罗拉多州布鲁姆菲尔德,Station(OSDI'14)
2014
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️