CCFS的应用程序崩溃一致性和性能-1|Java Debug 笔记

281 阅读17分钟

【Java Debug 笔记】 本文正在参加Java主题月-Java开发Debug实录,详情查看<活动链接>,该系列我将拆分为几个part来作为翻译分享。

😄

恰巧最近也在学习文件系统,学习java也绕不过的,肝不动了@ \color{red}恰巧最近也在学习文件系统,学习java也绕不过的,肝不动了@{~}

地址: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
  1. 介绍

“人们的目标应该是让‘写得不好’ 代码“只是工作”–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)中的优化 一开始是不符合严格的秩序,与新的 诸如保序延迟分配等技术。

image.png

我们显示了由ccfs维护的顺序,如图1:日志更新协议所示。一个简单的写前日志版本的伪代码;每条语句都是一个系统调用。普通文本直接对应于协议的逻辑,而粗体部分则是为了便于移植而需要的额外度量。斜体注释显示哪些度量值是正确的 在默认模式ext2、ext3、ext4、xfs和 btrfs和ext3/4的写回模式(ext3 wb,ext4 wb)。 通过对五个广泛应用的实例的测试,证明了该方法的正确性- 包括Git和LevelDB(这两者在许多现代文件系统上都是不一致的[35])。我们还展示了大多数应用程序和标准基准 只在一个流中表现出色。因此,ccfs使得在实践中有效地实现崩溃一致性变得简单,而不需要太多开发人员开销。 纸张结构如下。我们提供激励和背景(§2) ,呈现CCF(§3) 评估 它(§4). 我们讨论相关工作(§5) 并得出结论(§6).

参考文献

[1] 伦齐HArpaci DusseauAndrea C。阿帕奇-
杜梭。操作系统:三个简单的部分。
Arpaci Dusseau图书,0.9版,2014年。

[2] 安德鲁D。比雷尔。课程简介-
用细线敲打。技术报告SRC-RR-3519891月。

[3] 詹姆斯·博恩霍尔特、安托万·考夫曼、嘉林
李、阿文德·克里希纳穆尔蒂、艾米娜·托拉克和
王希。指定和检查文件系统
崩溃一致性模型。在法院程序中
第21届国际建筑会议
支持编程语言和运算符-
ing系统(ASPLOS 21),亚特兰大,乔治亚州,42016

[4] 内森C。伯内特。档案信息与控制
系统缓冲区管理。大学博士论文
威斯康星麦迪逊大学,200610月。

[5] Vijay ChidambaramThanumalayan Sankara-
纳拉亚娜·皮莱,安德里亚·CArpaci Dusseau和
伦齐H。阿帕奇·杜梭。乐观崩溃骗局-
姐妹关系。在第24ACM研讨会的会议记录中-
操作系统原理研究所(SOSP'13),
内马科林林地度假村,法明顿,宾州-
西尔瓦尼亚,201310月。

[6] Vijay ChidambaramTushar SharmaAndrea CArpaci DusseauRemzi H。阿帕奇·杜梭。
一致性,无需排序。在诉讼程序中
第十届USENIX文件与存储研讨会
技术(FAST'12),第101-116页,圣何塞,
加利福尼亚,20122月。

[7] Sailesh Chutani,欧文T。安德森,迈克尔L。
卡扎尔,布鲁斯W。莱弗雷特,W。安东尼·梅森,还有
罗伯特N。西德博坦。事件文件系统。
在USENIX冬季技术会议记录中
会议(USENIX Winter'92),第43-60页,
加利福尼亚州旧金山,19921月。

[8] 杰里米·康迪特,埃德蒙·B。克里斯托,南丁格尔-
弗罗斯特,伊佩克,本杰明李,道格
汉堡包和德里克·库切。更好的I/O通过
字节可寻址的持久内存。进行中-22ACM运营管理研讨会综述
系统原理(SOSP'09),大天空,蒙大拿,
200910月。

[9] 乔纳森·科比特。比POSIX好吗?,
20093月。20164月检索自
https://lwn.net/Articles/323752/.

[10] 克里斯汀·泽扎特克和M。安东·埃特尔。林洛夫斯:
Linux的日志结构文件系统。专业版-
USENIX年度技术会议-
费伦斯(弗里尼克斯轨道),圣地亚哥,加利福尼亚州,
20006月。

[11] Linux文档。XFS延迟日志-
装饰设计。20164月检索自
https://www.kernel.org/doc/Documentation
/文件系统/xfs-delayed-logging-design.txt[12] 文件台。文件台。20163月检索自
https://github.com/filebench/filebench/wiki.

[13] 克里斯托弗·弗罗斯特、迈克·马马雷拉、埃迪
科勒,安德鲁·德洛斯·雷耶斯,尚特·霍夫塞皮安,
安德鲁·松冈和张磊。广义
文件系统依赖项。在诉讼程序中
第21ACM操作系统研讨会
原则(SOSP'07),第307-320页,史蒂文森,
华盛顿,200710月。

[14] 格雷戈里RGangerMarshall Kirk McKusick,
克雷格AN。苏尔斯和耶鲁。帕特。软更新:
文件元数据更新问题的解决方案
系统。计算机系统上的ACM事务
(TOCS),第182)条,20005月。

[15] 格雷戈里RGangerYale N。帕特。元数据更新-
文件系统中的数据性能。诉讼中
第一届操作系统研讨会-
签署和实施(OSDI'94),第49-60页,
199411月,加利福尼亚州蒙特利。

[16] Kourosh GharachorlooDaniel LenoskiJames
劳登,菲利普·吉本斯,阿诺普·古普塔和约翰
轩尼诗。内存一致性和事件顺序-
在可伸缩共享内存多处理器中的应用。

第17届国际年会论文集
计算机体系结构研讨会(ISCA'90),
西雅图,华盛顿,19925月。

[17] 吉姆·格雷和安德烈亚斯·鲁特。事务处理程序-
转让:概念和技术。摩根考夫-
曼恩,1993年。

[18] 罗伯特·哈格曼。重新实现Cedar文件
使用日志记录和组提交的系统。专业版-
第十一届ACM运营研讨会纪要-
ing系统原理(SOSP'87),德克萨斯州奥斯汀,
198711月。

[19] 蒂莫西L。哈里斯。实用主义的实现
非阻塞链表。DISC2001年。

[20] 泰勒·哈特、克里斯·德拉加、迈克尔·沃恩-
德雷亚CArpaci DusseauRemzi H。阿帕奇-
杜梭。文件不是文件:理解
苹果桌面应用程序的I/O行为。在
第23ACM操作研讨会论文集-
系统原理(SOSP'11),卡斯凯斯,波尔图-
图加尔,201110月。

[21]莫里斯·赫利希。无等待同步。
编程语言学报,111),
19911月。

[22]天。M。雅各布森和J。威尔克斯。磁盘调度Al-
基于旋转位置的算法。技术
报告HPL-CSP-91-7Hewlett-Packard Laborato-
赖斯,1991年。

[23]JaehoKimJongmoochiYongseokOhDonghee
李,金恩森和山姆H。不。磁盘计划-
适用于固态硬盘驱动器的规则。英斯福特,格勒诺布尔,
法国,200910月。

[24]蓝月路,Thanumalayan Sankaranarayana Pillai,
安德里亚CArpaci DusseauRemzi H。阿帕奇-
杜梭。从Val中分离钥匙-
SSD存储中的UE。在诉讼程序中
第14USENIX文件与存储会议
加州圣克拉拉科技公司(FAST'16),
20162月。

[25]陆兰月,张玉浦,陈道,萨默尔
阿尔基斯瓦尼,安德里亚CArpaci Dusseau和
伦齐H。阿帕奇·杜梭。身体疾病-
基于容器的文件系统中的glement。在
第十一届操作科学研讨会论文集
系统设计与实施(OSDI'14),
布鲁姆菲尔德,科罗拉多州,201410月。

[26]马里亚布。Fusion io NVMFS原子
写支持。20164月检索自
https://mariadb.com/kb/en/mariadb/fusion-io-
nvmfs原子写入支持/。

[27]水银。处理存储库
以及国家腐败。恢复
20164https://www.mercurial-
scm.org/wiki/RepositoryCorruption[28]微软。使用Trans的替代方法-
操作NTFS20164月检索
从https://msdn.microsoft.com/en-
美国/图书馆/hh802690.aspx[29]张宇民、吴鹤康、金泰秀,
李善元和杨一荣。轻巧
Transac上的应用程序级崩溃一致性-
你的储藏室。在美国进行
年度技术会议(USENIX ATC15),
加利福尼亚州圣克拉拉,20157月。

[30]摄氏度。莫汉,D。哈德尔,B。林赛,H。皮拉赫什,
和P。施瓦茨。白羊座:交易记录-
支持细粒度锁定的ery方法
以及使用预写日志记录的部分回滚。
数据库系统ACM交易,171):94-
1992316日。

[31]埃德蒙.B。南丁格尔,考什克·维拉哈文,
Peter M ChenJason Flinn。重新考虑同步。
在第七届操作系统研讨会论文集上
系统设计与实施(OSDI'06),
第1-16页,西雅图,华盛顿,200611月。

[32]帕特里克·奥尼尔、爱德华·程、迪特尔·高利克,
伊丽莎白奥尼尔。日志结构合并-
树(LSM树)。《信息学报》,334):3513851996

[33]斯坦•帕克、特伦斯•凯利和沈凯。失败-
原子Msync():一种简单有效的机制-
nism用于保持持久数据的完整性。
欧洲系统会议(EuroSys)进程
20134月,捷克共和国布拉格。

[34]史蒂文•佩利,彼得•M。陈和托马斯F。
韦尼施。记忆持久性。诉讼中
第41届国际计算机研讨会
建筑(ISCA'14),美国明尼苏达州明尼阿波利斯,
20146月。

[35]Thanumalayan Sankaranarayana Pillai,维杰
基丹巴兰、拉拿但、亚拉迦班、撒母耳
阿尔基斯瓦尼,安德里亚CArpaci Dusseau和
伦齐H。阿帕奇·杜梭。所有文件系统都是
不平等:论手工艺的复杂性
崩溃一致性应用程序。在诉讼程序中
第11届操作系统设计研讨会
和实施(OSDI'14),布鲁姆菲尔德,
科罗拉多州,201410月。

[36]Thanumalayan Sankaranarayana Pillai,维杰
基丹巴兰、拉拿但、亚拉迦班、撒母耳
阿尔基斯瓦尼,安德里亚CArpaci Dusseau和
伦齐H。阿帕奇·杜梭。崩溃一致性。
ACM通讯,5810),102015

[37]唐纳德,波特,欧文斯,霍夫曼,克里斯托弗。
罗斯巴赫、亚历山大·本和埃米特·威切尔。
操作系统事务。在诉讼程序中
第八届操作系统设计研讨会
和实施(OSDI'08),加利福尼亚州圣地亚哥-
福尼亚,200812月。

[38]维贾扬·普拉巴卡兰,托马斯LRodeheffer和
周立东说。事务性闪存。诉讼中
第八届操作系统设计研讨会
和实施(OSDI'08),加利福尼亚州圣地亚哥-
福尼亚,200812月。

[39]乙。雷克特,C。关于。赖特和F。牛。霍格威德!:
随机变量并行化的无锁方法
梯度下降。神经信息研究进展
处理,2011年。

[40]孟德尔·罗森布鲁姆和约翰·奥斯特霍特。德-
日志结构文件的签署与实现
系统。计算机系统上的ACM事务,
101):265219922月。

[41]克里斯·鲁姆勒和约翰·威尔克斯。介绍-
磁盘驱动器建模。IEEE计算机,
273):172819943月。

[42]Margo SeltzerKeith BosticMarshall Kirk McKu-
生病了,还有卡尔·斯泰林。实现一个
UNIX的日志结构文件系统。进行中-
乌塞尼克斯冬季技术会议
(USENIX Winter'93),第307-326页,圣地亚哥,
加州,19931月。

[43]玛戈·萨尔茨、彼得·陈和约翰·奥斯特霍特。
重新讨论磁盘调度。在法院程序中
USENIX冬季技术会议(USENIX1990年冬天),第313-324页,华盛顿特区,1-
19908月。

[44]玛歌一世。萨尔茨。文件系统性能和
交易支持。EECS系博士论文-
加州大学伯克利分校医学院,19936月。

[45]玛歌一世。塞尔茨,格雷戈里R。甘格,M。柯克
麦库西克,基思A。史密斯,克雷格AN。苏尔斯,还有
克里斯托弗A。斯坦。日志与软备份-
日期:文件中的异步元数据保护
系统。在USENIX年刊
技术会议(USENIX'00),第71-84页,
加利福尼亚州圣地亚哥,20006月。

[46]Ji Yong ShinMahesh Balakrishnan,都铎王朝-
伊恩和哈基姆·威瑟斯彭。同位素:Transac-
块存储的隔离。诉讼中
第14USENIX文件和存储会议-
age TechnologiesFAST'16),加州圣克拉拉-
nia20162月。

[47]丹尼尔J。马克·D·索林。希尔和大卫A。木头。
内存一致性和缓存合作入门-
相干性。计算机建筑学综合讲座-
建筑,201111月。

[48]理查德P。斯皮兰、萨钦·盖克瓦德、曼朱纳特
奇尼、埃雷斯·扎多克和查尔斯·P。赖特。恩-
通过轻量级
内核扩展。在第七届会议上
USENIX文件和存储技术研讨会-
giesFAST'09),旧金山,加利福尼亚,二月-
20093月。

[49]SQLiteSQLite中的隔离。201612月检索
从https://www.sqlite.org/isolation.html.

[50]SQLiteSQLite所理解的SQL。恢复
201612https://www.sqlite.org/lang.html.

[51]瓦西里·塔拉索夫、埃雷斯·扎多克和斯宾塞·谢普勒。
Filebench:一种灵活的文件系统框架
基准测试;登录:USENIX杂志,
411),20166月。

[52]莱纳斯·托瓦尔兹。Linux 2.6.29版。20164月检索
从https://lkml.org/lkml/2009/3/25/632.
[53]西奥多·托奥。ext4:删除呼叫
从delallocext4 jbd2文件inode()
写入路径。20164月检索自
http://lists.openwall.net/linux-ext4/2012/11/16/9.

[54]Rajat VermaAnton Ajay Mendez,斯坦公园,
Sandya Srivilliputur Mannarswamy,特伦斯P。
凯利和查尔斯B。莫雷三世原子失败
Linux文件系统中应用程序数据的更新-
透射电镜。在第十三届会议的议事程序中-
文件和存储技术(FAST15),
加利福尼亚州圣克拉拉,20152月。

[55]查尔斯P。赖特、理查德·斯皮兰、戈帕兰·西-
vathanuErez Zadok。延长酸塞曼-
通过Ptrace连接到文件系统。ACM交易-
《存储技术规范》(TOS),32):14220076月。
[56]杨俊峰、坎萨和道森·恩格勒。前-
PLODE:一个轻量级的通用查找系统-
正在清除严重的存储系统错误。诉讼中
第七届操作系统设计研讨会
和实施(OSDI'06),西雅图,华盛顿-
200611月,华盛顿。

[57]郑迈,图切克,黄大川,冯
秦,马克·利利布里奇,伊丽莎白S。杨,比尔W
赵和沙申辛格。折磨数据库
乐趣和利润。在第十一届研讨会的会议记录中-
操作系统设计与实现研究-
10月,科罗拉多州布鲁姆菲尔德,StationOSDI'142014

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️