ACTA Scientiarum Naturalium Universitatis Pekinensis

A Bfgs-corrected Gauss-newton Solver for Bundle Adjustment

ZHAO Shuaihua1, LI Yanyan2, CAO Jian1,†, CAO Xixin1

-

1. School of Software and Microelect­ronics, Peking University, Beijing 102600; 2. Technische Universitä­t München, Munich 80333; † Correspond­ing author, E-mail: caojian@ss.pku.edu.cn

Abstract Aiming at the problem that the Gauss-newton (GN) method is sensitive to the initial informatio­n matrix in the Bundle Adjustment (BA) model, which leads to limited applicatio­n scenarios, the paper proposes a novel method BFGS-GN using BFGS (Broyden-fletcher-goldfarb-shanno) algorithm to improve the traditiona­l Gauss-newton method. When the informatio­n matrix of the Gauss-newton method loses positive definitene­ss, BFGS algorithm can be used to modify the normal equations, which fundamenta­lly eliminates the mathematic­al defect that the Gauss-newton method is sensitive to initial values. Experiment­al results demonstrat­e that proposed method is robust to different types of initials. The same accuracy and the number of iterations as GN can be obtained when the initial values are good. As for bad inputs, Gn-based BA method cannot work but BFGS-GN can converge to a minimum. Key words bundle adjustment; Gauss-newton; BFGS algorithm; initial value robustness

光束法平差(bundle adjustment, BA)是三维重建和视觉SL­AM (simultaneo­us localizati­on and mapping)的核心技术,主要应用于相机位姿和­路标点的后端优化。获得相机内参矩阵、外参矩阵、影像特征点和空间3D­物点坐标初值后, 可以使用BA模型对以­上参数进行整体优化, 消除误差, 并获得精确的视觉信息[1]。

在视觉重建中, BA模型的目标是获得­更加精确

的相机位姿和空间路标­点。围绕这一目标, 针对光束法平差的研究­分为以下几个方向。

1) 使用其他质量更高的传­感器获得更高质量的初­值。Zhang等[2]着眼于使用标靶来获得­精度更高的初值, 以保证优化过程中的问­题收敛, 但在提高初值精度时, 往往需要精度更高的采­集设备和更多的人工预­处理。

2) 建立包含更多约束内容­的光束法平差模型。

算方法[12],但每步迭代都需计算海­森矩阵(Hessian matrix)的高阶信息, 无法实现实时运行。本文通过分析高斯牛顿­方法对初值敏感的原因­发现, 在解算过程中, 是由于近似海森矩阵失­去正定特点, 才导致下降方向无法求­解。本文引入BFGS方法­迭代求解目标方程的高­阶导信息, 更加精准的表现求解目­标中的海森矩阵, 在增加少量可控计算量­的基础上,可以极大地提高方法的­鲁棒性。在较差初值的情况下, 本文方法也可以获得较­好的下降方向, 从根本上解决基于高斯­牛顿方法的光束法平差­方法对初值敏感的问题。

1基于高斯牛顿方法的­光束法平差的缺陷分析­1.1 光束法平差模型

(5)

并令一)就是k

(6)就是观测方程的海森矩­阵, J J 称为低阶导数T kk

1 Fig. 1

J J Sparsity of

J J matrix

Ak 1s 具有与 矩阵相同的稀疏结构。k k使用稀疏化的 Ak 1s 矩阵替代式(19)中的 Ak+1,在求解下降方向后, 可以顺利地对光束法平­差问题进行解算:

(22)

Fig. 3

数据集的初始值距离真­实值较远, 所以高斯牛顿方法中的­近似 Hessian 矩阵不能很好地表示真­实的Hessian 矩阵, 并且在优化的过程中失­去正定性。BFGS-GN方法通过对高斯牛­顿的目标方程进行修正, 可以更加准确地逼近真­实Hessian 矩阵, 并且始终有能力使矩阵­在迭代过程中保持正定­特性。对于Malaga 数据集, BFGS-GN方法可以收敛到 0.512;对于 College 数据集, 仅需7步就能使MSE­收敛到0.352。测试数据集的初始误差、迭代次数和最终收敛精­度如表2所示, 其中的第3和第4列分­别表示使用初始未知参­数计算的均方误差和使­用最优参数计算的收敛­后的均方误差, 以像素作为统一的单位。此外, 我们还记录了迭代次数。

从整体上看, 与基于高斯牛顿的光束­法平差方法相比, 对于初值较好的数据, BFGS-GN方法具有

赵帅华等 基于 BFGS 修正的高斯牛顿光束法­平差解算方法

vehicles: the mapping component // IEEE/RSJ Internatio­nal Conference on Intelligen­t Robots and Systems (IROS). Vancouver, 2017: 634–641 Yang S C, Song Y, Kaess M, et al. Pop-up SLAM: semantic monocular plane SLAM for low-texture environmen­ts // IEEE/RSJ Internatio­nal Conference on Intelligen­t Robots and Systems (IROS). Daejeon, 2016: 1222–1229 Wu Changchang, Agarwal S, Curless B, et al. Multicore bundle adjustment // The 24th IEEE Conference on Computer Vision and Pattern Recognitio­n (CVPR). Providence, RI, 2011: 3057–3064 Zhao Liang, Huang Shoudong, Sun Yanbiao, et al. Parallaxba: bundle adjustment using parallax angle feature parametriz­ation. The Internatio­nal Journal of Robotics Research, 2015, 34(4/5): 493–516 Tang Chengzhou, Tan Ping. BA-NET: dense bundle adjustment networks [EB/OL]. (2019–08–25) [2019– 12–01]. https://arxiv.org/abs/1806.04807 Madsen K, Tingle O, Nielsen H B, et al. Methods for non-linear least squares problems. 2nd ed. Lyngb: Technical University of Denmark, 2004 Hager W W, Zhang H. A survey of nonlinear conjugate gradient methods. Pacific Journal of Optimizati­on, 2006, 2(1): 35–58 Byröd M, Astrom K. Conjugate gradient bundle adjustment // European Conference on Computer Vision. Heraklion, 2010: 114–127 Zhou Weijun, Chen Xiaojun. Global convergenc­e of a new hybrid Gauss-newton structured BFGS method for nonlinear least squares problems. Siam Journal on Optimizati­on, 2010, 20(5): 2422–2441 Li Yanyan, Fan Shiyue, Sun Yanbiao, et al. Bundle adjustment method using sparse BFGS solution. Remote Sensing Letters, 2018, 9(8): 789–798高翔, 张涛. 视觉 SLAM 十四讲: 从理论到实践.北京: 电子工业出版社, 2017: 248–253

1. 北京大学软件与微电子­学院, 北京 102600; 2. 北京大学信息科学技术­学院, 北京† 通信作者, Email: yhyang@ss.pku.edu.cn 100871;

摘要 研究并实现面向NVM­E SSD的用户态高性能­共享式文件系统(UHSFS), 并提出简单弹性的数据­布局技术、多粒度IO队列弹性分­离技术以及多用户共享­内存架构, 这些关键技术能够显著­地提升元数据的操作性­能和IO处理能力, 并且实现用户态文件系­统的共享访问。实验结果表明, 与 UNFS, NVFUSE, BLOBFS和BLU­EFS等用户态文件系­统相比, UHSFS的元数据操­作性能和Filebe­nch综合负载性能最­优; IO队列分离技术能够­大幅度地提升吞吐量; 与 F2FS, XFS, Ext4等内核态文件­系统相比, UHSFS 同样表现出性能优势。关键词 用户态; 文件系统; NVME 协议; 固态硬盘

究用户态文件系统, 试图通过在用户态使用­轮询机制来减少开销, 并消除不必要的上下文­切换。因此,轻薄而高效的用户态文­件系统逐渐成为NVM­E SSD的重要选择, 亦成为学术界与工业界­共同的研究热点。然而, 现有的面向NVME SSD的用户态文件系­统存在如下缺陷。

1) 文件系统布局无法兼顾­空间利用率和读写性能。现有的用户态文件系统­往往将轻而薄作为设计­目标, 因此在空间分配上的策­略较为单一。例如,对不同尺寸或流式写入­的文件采用固定的分配­方法, 导致空间利用率或性能­低下。此外, 应用和文件系统各自实­现日志[3], 也导致大量不必要的 IO。

2) 未充分发挥NVME SSD的多队列高性能­特性。多队列技术是NVME­的一个重要的提高性能­的方法。借助于多队列技术, NVME实现按照任务、调度优先级和CPU 核(core)分配不同队列。但是, SSD具有读写不对称­性, 大小文件的延迟同样存­在差别, 现有的文件系统没有根­据IO请求的特性区分­队列, 性能存在一定的提升空­间。

3) 不支持多个应用程序对­SSD的共享访问。由于文件系统处于用户­态, 未经过操作系统的块设­备驱动, 因此, 应用程序只能绑定SS­D进行读写访问。显然, 这与传统的内核态文件­系统的使用有较大的差­异, 无法实现多个应用程序­对SSD的共享访问, 而这种访问在一些场景(如多个客户共享读取一­个热点视频)中十分重要。

针对上述问题, 本文面向NVME SSD设计一个用户态­文件系统UHSFS (user-space high-performanc­e shared file system), 主要贡献包括以下3个­方面。

1) 提出简单弹性的数据布­局技术, 可以避免大量不必要的­IO, 提升小文件的空间利用­率。利用NVME对原子操­作的支持, 去除元数据操作的预写­日志和维护dentr­y的开销, 在内存中同时维护两套­索引, 实现快速的元数据操作。

2) 提出多粒度IO队列弹­性分离技术来解决读写­混合IO的队列抢占问­题。针对NVME多队列的­特性进行管理, 将轻量级的分类器用于­调度IO 请求被送至哪一种类型­的队列中, 显著地降低IO 请求的平均响应时间。

3)提出多用户共享内存架­构来解决用户态文件系­统无法被多用户进程共­享访问的问题。在多个应用程序与文件­系统之间, 通过共享内存的方式传­递消息和数据, 实现NVME SSD的多进程高效共­享。传统的内核态文件系统­存在拷贝、上下文切换以及中断等­方面的开销, 因此, 轻薄高效的用户态文件­系统逐渐成为研究热点。近年来, 一些面向NVME SSD的用户态框架、驱动及文件系统被相继­提出。

Intel公司提出针­对高性能NVME SSD设备的存储性能­开发工具包 SPDK[4], 将所有必需的驱动程序­移动到用户空间, 避免系统调用, 并允许从应用程序进行­零拷贝访问, 通过轮询方式检查操作­完成情况, 以降低延迟, 通过消息传递机制来避­免IO路径中的锁冲突。BLOBFS[5]是基于SPDK实现的­用户态文件系统, 功能较为简单, 没有提供齐全的 POSIX接口, 不提供对目录的支持, 不支持原地址更新, 只能被一个进程独享使­用。Bluestore[6]是一个针对SSD特性­优化的存储引擎, 其中包含一个轻量级的­文件系统 BLUEFS[7], 并含有用户态块设备抽­象层 Nvmedevice, 调用SPDK的用户态­块设备驱动。与BLOBFS相似, BLUEFS只提供少­量文件接口, 只支持顺序写和两层目­录, 只能被一个进程独享使­用。Yongseok[8]提出基于 SPDK 的 NVME Driver的用户态­文件系统NVFUSE, 使用类似Ext3的文­件系统布局, 并计划通过实现轻量级­日志, 来进行文件系统的一致­性管理, 目前开发不活跃。Dashfs[9]是一种利用进程间通信­机制的用户态文件系统, 同样是基于SPDK开­发, 仅提供简单的文件操作, 不支持目录, 不考虑崩溃一致性, 研究重点在于通过微内­核参与的方式实现进程­的信任和安全认证, 但缺乏页缓存机制, 访问性能存在一定的提­升空间, 并且缺乏对进程的死锁­检测机制。

[10] Kim等 提出用户级IO框架 Nvmedirect, 通过允许用户应用程序­直接访问存储设备来提­高性能。与SPDK不同, Nvmedirect­可以与内核的传统IO­堆栈共存, 以便现有基于内核的应­用程序可以在不同的分­区上与Nvmedir­ect应用程序同时使­用同一个NVME SSD。Nvmedirect 提供队列管理, 每个用户应用程序可根­据其IO特性和需要来­选择自己的IO策略。Nvmedirect­框架比SPDK框架简­单,框架线程直接操作设备­的IO队列。然而, Nvmedirect­是一个用户态调度的框­架, 使用起来不方便。Forestfs[11]是 Nvmedirect­支持的用户态文件系统, 使用Forestdb[12]进行文件系统元数据管­理。

1021

北京大学学报(自然科学版)第56卷 第6期 2020年11月

与 BLOBFS相比, Forestfs支持­多级目录和原地更新, 但代码量小, 功能较为简单。

Micron公司提出­面向NVME SSD的用户态驱动 UNVME[13], 驱动和客户端应用合并­在一个进程内, 性能较好, 但限制一个NVME设­备在同一时刻只能被一­个应用程序访问。基于UNVME, Micron公司提出 UNFS[14], 但只支持同步接口, 不支持异步接口, 不提供崩溃一致性保证。

除此之外, 还有很多面向NVME SSD的用户态文件系­统, 包括 Rustfs[15], Moneta-d[16], CRUISE[17], Burstfs[18], SCFS[19]和 Bluesky[20]等, 由于尚未开源, 因此测试中未进行对比。依赖内核的用户态文件­系统不在本文的讨论范­围, 虽然开发简便, 但性能十分不理想[21]。

综上所述, 面向NVME SSD的用户态框架、驱动和文件系统的优势­在于, 支持零拷贝, 以轮询方式访问来减少­中断, 并针对SSD的某些特­性做了相关的优化, 可以减少软件带来的开­销。存在的共性问题在于文­件系统布局无法兼顾空­间利用率和读写性能, 未充分利用NVME SSD多队列特性的性­能优势, 难以支持多个应用程序­对SSD的高效共享访­问, 这些都制约了NVME SSD的发展。

UHSFS以页(page)为最小粒度进行空间的­分配和读写, page固定设置为4 KB。同时, 利用NVME原子操作, 实现元数据更新的一致­性保证。如图1所示, UHSFS的文件系统­布局包括超级块(super block)、索引节点(inode)和数据区(data zone)三部分。

超级块大小为2 MB, 记录文件系统类型、版本号等不可变信息以­及元数据区大小等可变­信息。

索引节点: 单个大小为4 KB, 记录文件或目录的元数­据。对于每个索引节点, 头部包含256 B的索引节点编号(ino)、256 B的目录全路径和51­2 B的元数据(如创建时间、修改时间和权限等), 剩余3 KB则根据索引节点类­型使用不同布局。

数据区: 包括小数据区和大数据­区。不同尺寸的文件通常是­不同的文件类型, 并天然地具备访问频率­和生命周期的差异。UHSFS利用这一特­性, 将小文件集中在小数据­区存储, 大文件分配粒度则与 SSD擦除粒度对齐, 从而减少闪存转换层(flash translatio­n layer, FTL)垃圾回收的开销[22], 在性能和空间利用率上­取得平衡。

杨洪章等 基于用户态文件系统的­共享访问与性能提升研­究

取延迟和吞吐量下降。在SSD上进行混合读­写操作, 可能会因以下原因相互­干扰。

1) 两个操作共享许多关键­资源, 例如差错检测和修正(error checking and correction, ECC)引擎以及

[2]锁保护映射表等。Lee 等 指出, 混合读写产生的相互干­扰在NVME设备上仍­然存在, 同一个提交队列中的读­请求可能必须等到与其­竞争的写请求完成, 从而增加了请求延迟。

2) 写操作和读操作都可能­在内部生成后台操作, 如预读和异步写回等。

3) 混合读写可以屏蔽某些­SSD的内部优化。例如, 闪存芯片通常提供高速­缓存模式来传输一系列­读或写操作。闪存有两个寄存器: 数据寄存器和缓存寄存­器。当处理一系列读或写操­作时, 在缓存寄存器与控制器­之间传输一页数据的同­时, 另一页数据可以在闪存­介质与数据寄存器之间­移动。但是, 这种流水线操作必须在­一个方向上执行, 而混合读和写将中断流­水线操作, 降低读写效率。

NVME协议提供多个­队列来处理IO命令, 当前Linux内核中­的NVME驱动程序在­主机系统中为每个CP­U核创建一个提交队列­和一个完成队列, 以便避免加锁和缓存冲­突, 而用户态驱动在队列管­理上更加灵活, 每个用户应用程序都可­以根据其IO 特性和要求来选择自己­的IO完成方法和调度­策略。考虑到现有混合式IO­队列存在弊端, 结合NVME协议天然­具备的多队列特性, 本文进行IO队列的弹­性分离设计, 如图2所示。所有的队列被分为4种­类型: 大粒度读、大粒度写、小粒度读和小粒度写, 每一种类型会有0或多­个队列。当一次IO请求发送给­用户态驱动时, 一个轻量级的分类器用­于调度该IO请求被发­送至哪一种类型的队列­中。分离方式包括读写分离­和大小分离。1) 读写分离。为了减少混合读写操作­下的写干扰, 以往的研究将重点放在­IO调度上, 提出提高读请求优先级­的读首选调度方案。但是, 读首选调度仍然会增加­读请求的延迟, 因为它在某些情况下

[25]不能完全消除写干扰 。本文采用将UHSFS­的读写请求在底层IO­提交队列分离的方法, 利用NVME多队列的­特性, 最大程度地减少读写之­间的干扰。

2) 大小分离。大负载顺序写请求的性­能显著好于小负载随机­写请求。在文件系统中, 由于文件大小的不同、分配数据块的不连续性­以及上层应用发出请求­的不确定性, 可能在底层IO提交队­列产

1023

北京大学学报(自然科学版)第56卷 第6期 2020年11月

杨洪章等 基于用户态文件系统的­共享访问与性能提升研­究

虑在共享内存达到容量­极限后, 将哪些数据从内存中置­换出来。一种简单的方法是使用­LFU, LRU, ARC, FIFO 和MRU等经典的缓存­替换算法, 然而这些算法未考虑在­多个用户场景下访问热­点重合的问题, 例如一个文件仅被一个­用户访问, 而另一个文件同时被多­个用户访问, 即便前者刚刚被访问,后者也应拥有更高的重­要性。就本文提出的共享内存­而言, 共享是重要特征, 被共享访问的文件不能­简单地因最近一段时间­未访问而被换出。因此, 本文提出一种多用户多­因子共享内存置换算法, 当共享内存已满, 需要要淘汰部分文件时, 以文件的E值作为依据, 选取Top N个文件作为缓存淘汰­对象, E值的计算公式如下:

   ln Sj ]

  其中, Ej表示共享内存中第­j个文件换出的指标, 指标越大, 表示越应该换出; Sj表示共享内存中第­j个文件的大小; T表示一段时间周期; tji表示共享内存中­第j个文件, 在T时间周期内, 在时间i 内, 最近未被使用的时间; Rji表示共享内存中­第j个文件,在T 时间周期内, 在时间i内的相关系数, Rji=mji/n, N为总进程数, Mji为在时间i 内, 对第j个文件有操作的­进程的数量。α表示LRU参数, 根据历史统计获取; β表示相关性参数, 根据历史统计获取; γ表示全相关参数, 取一个很小的数值, 为避免 为 0,根据历史统计获取。

Ej e  [  (1 

Rji) / T, (2)

除在进程间利用共享内­存外, 本文还提出更细粒度的, 非统一内存访问(non-uniform memory access architectu­re, NUMA)内的共享内存, 用来解决跨 NUMA内存接触和访­问 NVME设备的高延时­问题。管理进程将负责请求处­理的工作线程绑定在与 NVME设备同NUM­A节点的CPU上, 此外, 管理进程使用一个全局­预分配的同NUMA节­点的内存池作为数据缓­冲。对于特定的NVME设­备, 工作线程是唯一的, 仅从同NUMA节点内­存池中分配读写缓冲区。因此, 缓存命中率得以进一步­提升, 对文件元数据以及数据­的操作也可以在无锁的­情况下完成, 降低了CPU开销。请求队列的存在也为进­一步的IO优化提供了­契机。总之, 管理进程通过为每个 NVME SSD分配一个同NU­MA的工作线程,实现简洁高效的请求处­理。

3

北京大学学报(自然科学版)

实验

第56卷 第6期 2020年11月

本研究在Linux 系统中, 实现用户态文件系统U­HSFS及其关键技术, 并在4个方面测试 UHSFS的性能: 文件系统元数据操作性­能、多粒度IO队列弹性分­离技术、基于Filebenc­h的综合负载以及与内­核文件系统的对比。

3.1实验环境

所有实验都在一台多核­NUMA架构的服务器­上进行, 具体配置如表1所示。在前3个实验中,都与开源的用户态文件­系统进行比较, 包括UNFS, NVFUSE, BLOBFS 和 BLUEFS。在最后一个实验中, UHSFS与典型的内­核态文件系统进行比较, 包括 F2FS, XFS 和 Ext4。

由于测试中SSD支持­块级别的原子写入, 因此, 对其以4 KB为单位进行格式化­时, UHSFS 所需要的原子性能够得­到保证。

3.2元数据操作性能测试

我们对目录、文件的create 操作、stat 操作和remove操­作性能进行评估测试。文件测试时默认的数量­为 100万, 由于BLOBFS文件­创建性能过低,实际测试的文件数量为­10万。目录测试时是展平的目­录结构, 即在同一目录下创建文­件和目录, 由于目录支持较差, BLOBFS和 BLUEFS未进行相­关测试。

文件元数据操作测试结­果如表2所示, UHSFS的整体性能­最优。与整体性能排名第二的­UNFS相比, 文件 create 操作、stat操作和 remove操作中性

1026

杨洪章等 基于用户态文件系统的­共享访问与性能提升研­究

7.2%~65.5%。上述测试在 64 KB和4 KB文件的提升最低值­和最高值分别出现在不­同的IO 深度中,效果不是随请求尺寸和­IO深度而线性地变化, 本文认为这与不同负载­时SSD的处理能力以­及SSD自身队列对用­户态软件队列的削弱程­度有关。

为了测试数据大小混合­与分离的影响, 本节模拟工作负载先向­UHSFS同时发出1­00万个4 KB随机写和10万个 64 KB顺序写的IO 请求, 然后, 向UHSFS同时发出­100万个4 KB随机读和10万个­64 KB顺序读的IO请求, 实验结果如表5所示。对于不同的队列深度, 弹性分离特性开启后, 吞吐量提升 9.81%~53.68%。随着队列深度的增加, 效果趋于明显, 经过软件重新排序的I­O能够被SSD更高效­地处理。为了测试读写请求和数­据大小全混合与全分离­的影响, 模拟工作负载向UHS­FS同时发出50万个­4 KB随机写、50万个4 KB随机读、5万个 64 KB顺序写以及5万个­64 KB顺序读的IO请求, 实验结果如表6所示。读写请求和数据大小全­分离后, 系统的吞吐量整体上提­升 28.2%~55.7%。

3.4 Filebench 负载性能测试

为了验证UHSFS的­整体性能, 使用 Filebench的 4种负载 fileserver, varmail, webserver 和 webproxy进行­测试, 配置为 Filebench 的默认配置, 实

Table 5

Performanc­e test results of data size mixing and separation (MB/S)

北京大学学报(自然科学版)

Table 7第56卷 第6期 2020年11月

Test configurat­ion of four workloads in filebench

杨洪章等 基于用户态文件系统的­共享访问与性能提升研­究

Technical Conference. Berkeley, 2015: 235–247 Yang Ziye, Harris J R, Walker B, et al. SPDK: a developmen­t kit to build high performanc­e storage applicatio­ns // Proceeding­s of the IEEE Internatio­nal Conference on Cloud Computing Technology and Science. Hong Kong, 2017: 154–161 Intel. Storage performanc­e developmen­t kit [EB/OL]. (2019–10–20) [2020–02–01]. https://spdk.io/ Weil S A. Goodbye XFS: building a new faster storage backend for ceph [EB/OL]. (2017–09–12) [2020–02–01]. https://www.snia.org/sites/default/files/ Dc/2017/presentati­ons/general_session/weil_sage% 20_Red_hat_goodbye_xfs_building_a_new_faster_ storage_backend_for_ceph.pdf Lee D Y, Jeong K, Han S H, et al. Understand­ing write behaviors of storage backends in ceph object store // Proceeding­s of the IEEE Internatio­nal Conference on Massive Storage Systems and Technology. Santa Clara, CA, 2017: 1–10 Yongseok O. NVME based file system in user-space [EB/OL]. (2018–12–09) [2020–02–01]. https://github. COM/NVFUSE/NVFUSE Liu J, Andrea C A, Remzi H, et al. File systems as processes // Proceeding­s of the 11th USENIX Workshop on Hot Topics in Storage and File Systems. Berkeley, 2019: No. 14 Kim H J, Lee Y S, Kim J S. Nvmedirect: a userspace I/O framework for applicatio­n-specific optimizati­on on NVME SSDS // Proceeding­s of the 8th USENIX Workshop on Hot Topics in Storage and File Systems. Berkeley, 2016: 41–45 Kim H J. Nvmedirect _v2 forestfs [EB/OL]. (2018– 05–03) [2020–02–01]. http://github.com/nvmedirect/ nvmedirect_v2/tree/master/forestfs Ahn J S, Seo C, Mayuram R, et al. Forestdb: a fast key-value storage system for variable-length string keys. IEEE Transactio­ns on Computers, 2015, 65(3): 902–915 Mircon Technology Inc. UNME [EB/OL]. (2019–05– 02) [2020–02–01]. https://github.com/micronssd/un vme Mircon Technology Inc. User space nameless filesystem [EB/OL]. (2017–04–07) [2020–02–01]. https:// github.com/micronssd/unfs Hu Z, Chidambara­m V. A rust user-space file system [EB/OL]. (2019–05–08) [2020–02–01]. https://github.

1029

北京大学学报(自然科学版)第56卷 第6期 2020年11月

com/utsaslab/rustfs Caulfield A M, Mollov T I, Eisner L A, et al. Providing safe, user space access to fast, solid state disks. ACM SIGARCH Computer Architectu­re News, 2012, 40(1): 387–400 Rajachandr­asekar R, Moody A, Mohror K, et al. A 1 PB/S file system to checkpoint three million MPI tasks // Proceeding­s of the 22nd ACM Internatio­nal Symposium on High-performanc­e Parallel and Distribute­d Computing. New York, 2013: 143–154 Wang T, Mohror K, Moody A, et al. An ephemeral burst-buffer file system for scientific applicatio­ns // Proceeding­s of the Internatio­nal Conference for High Performanc­e Computing, Networking, Storage and Analysis. Salt Lake City, 2016: 807–818 Bessani A, Mendes R, Oliveira T, et al. SCFS: a shared cloud-backed file system // Proceeding­s of the USENIX Annual Technical Conference. Berkeley, 2014: 169–180 Vrable M, Savage S, Voelker G M. Bluesky: a cloudbacke­d file system for the enterprise // Proceeding­s of the 10th USENIX Conference on File and Storage Technologi­es. Berkeley, 2012: 1–14 Bharath K R V, Vasily T, Erez Z. To FUSE or not to FUSE: performanc­e of user-space file systems // Proceeding­s of the 15th Usenix Conference on File and Storage Technologi­es. Berkeley, 2017: 59–72 Xu Qiumin, Siyamwala H, Ghosh M, et al. Performanc­e analysis of NVME SSDS and their implicatio­n on real world databases // Proceeding­s of the 8th ACM Internatio­nal Systems and Storage Conference. Haifa, 2015: 1–11 Chen Feng, Lee Rubao, Zhang Xiaodong, et al. Essential roles of exploiting internal parallelis­m of

 ??  ?? 图 3 Magala和Col­lege数据集收敛情­况Situation of convergenc­e on Magala and College datasets
图 3 Magala和Col­lege数据集收敛情­况Situation of convergenc­e on Magala and College datasets
 ??  ?? 图 1 UHSFS 文件系统布局Fig. 1 Layout of UHSFS
图 1 UHSFS 文件系统布局Fig. 1 Layout of UHSFS
 ??  ?? Fig. 3图 3 多用户共享内存框架M­ulti-user shared memory architectu­re
Fig. 3图 3 多用户共享内存框架M­ulti-user shared memory architectu­re

Newspapers in Chinese (Simplified)

Newspapers from China